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
data/ChangeLog
CHANGED
@@ -1,3 +1,28 @@
|
|
1
|
+
2009-12-13 Kouhei Sutou <kou@cozmixng.org>
|
2
|
+
|
3
|
+
* src/rb_cairo.c: 1.8.0 -> 1.8.1.
|
4
|
+
|
5
|
+
* NEWS: add 1.8.1 entry.
|
6
|
+
|
7
|
+
* Rakefile: remove install/uninstall tasks.
|
8
|
+
|
9
|
+
* Rakefile: use hoe 2.3.2.
|
10
|
+
|
11
|
+
* Rakefile: resupport FORCE_PLATFORM.
|
12
|
+
|
13
|
+
2009-03-27 Kouhei Sutou <kou@clear-code.com>
|
14
|
+
|
15
|
+
* pkg-config.rb: add license term.
|
16
|
+
|
17
|
+
2009-03-02 Kouhei Sutou <kou@cozmixng.org>
|
18
|
+
|
19
|
+
* pkg-config.rb (PackageConfig#guess_default_path): add
|
20
|
+
/usr/X11/lib/pkgconfig/.
|
21
|
+
|
22
|
+
2008-11-01 Kouhei Sutou <kou@cozmixng.org>
|
23
|
+
|
24
|
+
* extconf.rb, src/rb_cairo_surface.c: check ruby/io.h availability.
|
25
|
+
|
1
26
|
2008-09-26 Kouhei Sutou <kou@cozmixng.org>
|
2
27
|
|
3
28
|
* src/rb_cairo.c: 1.7.1 -> 1.8.0.
|
data/NEWS
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
Release 1.8.1 (2009-12-13) Kouhei Sutou <kou@cozmixng.org>)
|
2
|
+
===========================================================
|
3
|
+
|
4
|
+
Features
|
5
|
+
--------
|
6
|
+
* Support cairo 1.8.8.
|
7
|
+
* Improve auto .pc detection.
|
8
|
+
|
1
9
|
Release 1.8.0 (2008-09-26) Kouhei Sutou <kou@cozmixng.org>)
|
2
10
|
===========================================================
|
3
11
|
|
data/Rakefile
CHANGED
@@ -60,7 +60,8 @@ end
|
|
60
60
|
|
61
61
|
ENV["VERSION"] ||= guess_rcairo_version
|
62
62
|
version = ENV["VERSION"]
|
63
|
-
project = Hoe.
|
63
|
+
project = Hoe.spec('cairo') do |project|
|
64
|
+
project.version = version
|
64
65
|
project.rubyforge_name = 'cairo'
|
65
66
|
authors = File.join(base_dir, "AUTHORS")
|
66
67
|
project.author = File.readlines(authors).collect do |line|
|
@@ -79,6 +80,8 @@ project = Hoe.new('cairo', version) do |project|
|
|
79
80
|
:require_paths => ['src/lib', 'src'],
|
80
81
|
:has_rdoc => false,
|
81
82
|
}
|
83
|
+
platform = ENV["FORCE_PLATFORM"]
|
84
|
+
project.spec_extras[:platform] = platform if platform
|
82
85
|
news = File.join(base_dir, "NEWS")
|
83
86
|
project.changes = File.read(news).gsub(/\n+^Release(?m:.*)/, '')
|
84
87
|
project.description = "Ruby bindings for cairo"
|
@@ -103,39 +106,9 @@ end
|
|
103
106
|
|
104
107
|
# fix Hoe's incorrect guess.
|
105
108
|
project.spec.executables.clear
|
106
|
-
project.lib_files = project.spec.files.grep(%r|^src/lib/|)
|
107
|
-
|
108
|
-
# fix Hoe's install and uninstall task.
|
109
|
-
task(:install).instance_variable_get("@actions").clear
|
110
|
-
task(:uninstall).instance_variable_get("@actions").clear
|
111
109
|
|
112
110
|
task(:release).prerequisites.reject! {|name| name == "clean"}
|
113
|
-
|
114
|
-
task :install do
|
115
|
-
[
|
116
|
-
[project.lib_files, "lib", Hoe::RUBYLIB, 0444],
|
117
|
-
[project.bin_files, "bin", File.join(Hoe::PREFIX, 'bin'), 0555]
|
118
|
-
].each do |files, prefix, dest, mode|
|
119
|
-
FileUtils.mkdir_p dest unless test ?d, dest
|
120
|
-
files.each do |file|
|
121
|
-
base = File.dirname(file.sub(/^#{prefix}#{File::SEPARATOR}/, ''))
|
122
|
-
_dest = File.join(dest, base)
|
123
|
-
FileUtils.mkdir_p _dest unless test ?d, _dest
|
124
|
-
install file, _dest, :mode => mode
|
125
|
-
end
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
desc 'Uninstall the package.'
|
130
|
-
task :uninstall do
|
131
|
-
Dir.chdir Hoe::RUBYLIB do
|
132
|
-
rm_f project.lib_files.collect {|f| f.sub(/^lib#{File::SEPARATOR}/, '')}
|
133
|
-
end
|
134
|
-
Dir.chdir File.join(Hoe::PREFIX, 'bin') do
|
135
|
-
rm_f project.bin_files.collect {|f| f.sub(/^bin#{File::SEPARATOR}/, '')}
|
136
|
-
end
|
137
|
-
end
|
138
|
-
|
111
|
+
task(:release_to_rubyforge).prerequisites.reject! {|name| name == "clean"}
|
139
112
|
|
140
113
|
# for releasing
|
141
114
|
task :dist => [:docs] do
|
data/cairo/bin/libcairo-2.dll
CHANGED
Binary file
|
data/cairo/bin/libpng12-0.dll
CHANGED
Binary file
|
@@ -2,6 +2,7 @@
|
|
2
2
|
#ifndef CAIRO_FEATURES_H
|
3
3
|
#define CAIRO_FEATURES_H
|
4
4
|
|
5
|
+
#define CAIRO_HAS_FT_FONT 1
|
5
6
|
#define CAIRO_HAS_IMAGE_SURFACE 1
|
6
7
|
#define CAIRO_HAS_PDF_SURFACE 1
|
7
8
|
#define CAIRO_HAS_PNG_FUNCTIONS 1
|
@@ -11,7 +12,6 @@
|
|
11
12
|
#define CAIRO_HAS_WIN32_FONT 1
|
12
13
|
#define CAIRO_HAS_WIN32_SURFACE 1
|
13
14
|
|
14
|
-
/*#undef CAIRO_HAS_FT_FONT */
|
15
15
|
/*#undef CAIRO_HAS_QUARTZ_FONT */
|
16
16
|
/*#undef CAIRO_HAS_QUARTZ_SURFACE */
|
17
17
|
/*#undef CAIRO_HAS_XLIB_SURFACE */
|
@@ -0,0 +1,75 @@
|
|
1
|
+
/* cairo - a vector graphics library with display and print output
|
2
|
+
*
|
3
|
+
* Copyright © 2005 Red Hat, Inc
|
4
|
+
*
|
5
|
+
* This library is free software; you can redistribute it and/or
|
6
|
+
* modify it either under the terms of the GNU Lesser General Public
|
7
|
+
* License version 2.1 as published by the Free Software Foundation
|
8
|
+
* (the "LGPL") or, at your option, under the terms of the Mozilla
|
9
|
+
* Public License Version 1.1 (the "MPL"). If you do not alter this
|
10
|
+
* notice, a recipient may use your version of this file under either
|
11
|
+
* the MPL or the LGPL.
|
12
|
+
*
|
13
|
+
* You should have received a copy of the LGPL along with this library
|
14
|
+
* in the file COPYING-LGPL-2.1; if not, write to the Free Software
|
15
|
+
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
16
|
+
* You should have received a copy of the MPL along with this library
|
17
|
+
* in the file COPYING-MPL-1.1
|
18
|
+
*
|
19
|
+
* The contents of this file are subject to the Mozilla Public License
|
20
|
+
* Version 1.1 (the "License"); you may not use this file except in
|
21
|
+
* compliance with the License. You may obtain a copy of the License at
|
22
|
+
* http://www.mozilla.org/MPL/
|
23
|
+
*
|
24
|
+
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
|
25
|
+
* OF ANY KIND, either express or implied. See the LGPL or the MPL for
|
26
|
+
* the specific language governing rights and limitations.
|
27
|
+
*
|
28
|
+
* The Original Code is the cairo graphics library.
|
29
|
+
*
|
30
|
+
* The Initial Developer of the Original Code is Red Hat, Inc.
|
31
|
+
*
|
32
|
+
* Contributor(s):
|
33
|
+
* Graydon Hoare <graydon@redhat.com>
|
34
|
+
* Owen Taylor <otaylor@redhat.com>
|
35
|
+
*/
|
36
|
+
|
37
|
+
#ifndef CAIRO_FT_H
|
38
|
+
#define CAIRO_FT_H
|
39
|
+
|
40
|
+
#include "cairo.h"
|
41
|
+
|
42
|
+
#if CAIRO_HAS_FT_FONT
|
43
|
+
|
44
|
+
/* Fontconfig/Freetype platform-specific font interface */
|
45
|
+
|
46
|
+
#include <fontconfig/fontconfig.h>
|
47
|
+
#include <ft2build.h>
|
48
|
+
#include FT_FREETYPE_H
|
49
|
+
|
50
|
+
CAIRO_BEGIN_DECLS
|
51
|
+
|
52
|
+
cairo_public cairo_font_face_t *
|
53
|
+
cairo_ft_font_face_create_for_pattern (FcPattern *pattern);
|
54
|
+
|
55
|
+
cairo_public void
|
56
|
+
cairo_ft_font_options_substitute (const cairo_font_options_t *options,
|
57
|
+
FcPattern *pattern);
|
58
|
+
|
59
|
+
cairo_public cairo_font_face_t *
|
60
|
+
cairo_ft_font_face_create_for_ft_face (FT_Face face,
|
61
|
+
int load_flags);
|
62
|
+
|
63
|
+
cairo_public FT_Face
|
64
|
+
cairo_ft_scaled_font_lock_face (cairo_scaled_font_t *scaled_font);
|
65
|
+
|
66
|
+
cairo_public void
|
67
|
+
cairo_ft_scaled_font_unlock_face (cairo_scaled_font_t *scaled_font);
|
68
|
+
|
69
|
+
CAIRO_END_DECLS
|
70
|
+
|
71
|
+
#else /* CAIRO_HAS_FT_FONT */
|
72
|
+
# error Cairo was not compiled with support for the freetype font backend
|
73
|
+
#endif /* CAIRO_HAS_FT_FONT */
|
74
|
+
|
75
|
+
#endif /* CAIRO_FT_H */
|
data/cairo/include/cairo/cairo.h
CHANGED
@@ -51,7 +51,7 @@
|
|
51
51
|
#endif
|
52
52
|
|
53
53
|
#ifndef cairo_public
|
54
|
-
#
|
54
|
+
# if defined (_MSC_VER) && ! defined (CAIRO_WIN32_STATIC_BUILD)
|
55
55
|
# define cairo_public __declspec(dllimport)
|
56
56
|
# else
|
57
57
|
# define cairo_public
|
@@ -1523,35 +1523,30 @@ typedef cairo_status_t (*cairo_user_scaled_font_render_glyph_func_t) (cairo_scal
|
|
1523
1523
|
* as well as complex <firstterm>shaping</firstterm> required for scripts like
|
1524
1524
|
* Arabic and Indic.
|
1525
1525
|
*
|
1526
|
-
* The @num_glyphs argument is preset to
|
1527
|
-
*
|
1528
|
-
*
|
1529
|
-
* origin. Cairo will free the glyph array when done with it, no matter what
|
1530
|
-
* the return value of the callback is.
|
1531
|
-
*
|
1532
|
-
* If @glyphs initially points to a non-%NULL value, that array can be used
|
1533
|
-
* as a glyph buffer, and @num_glyphs points to the number of glyph
|
1534
|
-
* entries available there. If the provided glyph array is too short for
|
1526
|
+
* The @num_glyphs argument is preset to the number of glyph entries available
|
1527
|
+
* in the @glyphs buffer. If the @glyphs buffer is %NULL, the value of
|
1528
|
+
* @num_glyphs will be zero. If the provided glyph array is too short for
|
1535
1529
|
* the conversion (or for convenience), a new glyph array may be allocated
|
1536
1530
|
* using cairo_glyph_allocate() and placed in @glyphs. Upon return,
|
1537
|
-
* @num_glyphs should contain the number of generated glyphs.
|
1538
|
-
*
|
1539
|
-
*
|
1540
|
-
*
|
1541
|
-
*
|
1542
|
-
*
|
1543
|
-
*
|
1544
|
-
*
|
1531
|
+
* @num_glyphs should contain the number of generated glyphs. If the value
|
1532
|
+
* @glyphs points at has changed after the call, the caller will free the
|
1533
|
+
* allocated glyph array using cairo_glyph_free().
|
1534
|
+
* The callback should populate the glyph indices and positions (in font space)
|
1535
|
+
* assuming that the text is to be shown at the origin.
|
1536
|
+
*
|
1537
|
+
* If @clusters is not %NULL, @num_clusters and @cluster_flags are also
|
1538
|
+
* non-%NULL, and cluster mapping should be computed. The semantics of how
|
1539
|
+
* cluster array allocation works is similar to the glyph array. That is,
|
1545
1540
|
* if @clusters initially points to a non-%NULL value, that array may be used
|
1546
1541
|
* as a cluster buffer, and @num_clusters points to the number of cluster
|
1547
1542
|
* entries available there. If the provided cluster array is too short for
|
1548
1543
|
* the conversion (or for convenience), a new cluster array may be allocated
|
1549
1544
|
* using cairo_text_cluster_allocate() and placed in @clusters. Upon return,
|
1550
1545
|
* @num_clusters should contain the number of generated clusters.
|
1551
|
-
* If the value @clusters points at has changed after the call,
|
1552
|
-
* free the allocated cluster array using cairo_text_cluster_free().
|
1546
|
+
* If the value @clusters points at has changed after the call, the caller
|
1547
|
+
* will free the allocated cluster array using cairo_text_cluster_free().
|
1553
1548
|
*
|
1554
|
-
* The callback is optional. If
|
1549
|
+
* The callback is optional. If @num_glyphs is negative upon
|
1555
1550
|
* the callback returning, the unicode_to_glyph callback
|
1556
1551
|
* is tried. See #cairo_user_scaled_font_unicode_to_glyph_func_t.
|
1557
1552
|
*
|
@@ -1,14 +1,16 @@
|
|
1
1
|
/* png.h - header file for PNG reference library
|
2
2
|
*
|
3
|
-
* libpng version 1.2.
|
4
|
-
* Copyright (c) 1998-
|
3
|
+
* libpng version 1.2.39 - August 13, 2009
|
4
|
+
* Copyright (c) 1998-2009 Glenn Randers-Pehrson
|
5
5
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
6
6
|
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
7
7
|
*
|
8
|
+
* This code is released under the libpng license (See LICENSE, below)
|
9
|
+
*
|
8
10
|
* Authors and maintainers:
|
9
11
|
* libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
|
10
12
|
* libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
|
11
|
-
* libpng versions 0.97, January 1998, through 1.2.
|
13
|
+
* libpng versions 0.97, January 1998, through 1.2.39 - August 13, 2009: Glenn
|
12
14
|
* See also "Contributing Authors", below.
|
13
15
|
*
|
14
16
|
* Note about libpng version numbers:
|
@@ -207,6 +209,38 @@
|
|
207
209
|
* 1.2.32rc01 13 10232 12.so.0.32[.0]
|
208
210
|
* 1.0.40 10 10040 10.so.0.40[.0]
|
209
211
|
* 1.2.32 13 10232 12.so.0.32[.0]
|
212
|
+
* 1.2.33beta01-02 13 10233 12.so.0.33[.0]
|
213
|
+
* 1.2.33rc01-02 13 10233 12.so.0.33[.0]
|
214
|
+
* 1.0.41rc01 10 10041 10.so.0.41[.0]
|
215
|
+
* 1.2.33 13 10233 12.so.0.33[.0]
|
216
|
+
* 1.0.41 10 10041 10.so.0.41[.0]
|
217
|
+
* 1.2.34beta01-07 13 10234 12.so.0.34[.0]
|
218
|
+
* 1.0.42rc01 10 10042 10.so.0.42[.0]
|
219
|
+
* 1.2.34rc01 13 10234 12.so.0.34[.0]
|
220
|
+
* 1.0.42 10 10042 10.so.0.42[.0]
|
221
|
+
* 1.2.34 13 10234 12.so.0.34[.0]
|
222
|
+
* 1.2.35beta01-03 13 10235 12.so.0.35[.0]
|
223
|
+
* 1.0.43rc01-02 10 10043 10.so.0.43[.0]
|
224
|
+
* 1.2.35rc01-02 13 10235 12.so.0.35[.0]
|
225
|
+
* 1.0.43 10 10043 10.so.0.43[.0]
|
226
|
+
* 1.2.35 13 10235 12.so.0.35[.0]
|
227
|
+
* 1.2.36beta01-05 13 10236 12.so.0.36[.0]
|
228
|
+
* 1.2.36rc01 13 10236 12.so.0.36[.0]
|
229
|
+
* 1.0.44 10 10044 10.so.0.44[.0]
|
230
|
+
* 1.2.36 13 10236 12.so.0.36[.0]
|
231
|
+
* 1.2.37beta01-03 13 10237 12.so.0.37[.0]
|
232
|
+
* 1.2.37rc01 13 10237 12.so.0.37[.0]
|
233
|
+
* 1.2.37 13 10237 12.so.0.37[.0]
|
234
|
+
* 1.2.45 10 10045 12.so.0.45[.0]
|
235
|
+
* 1.0.46 10 10046 10.so.0.46[.0]
|
236
|
+
* 1.2.38beta01 13 10238 12.so.0.38[.0]
|
237
|
+
* 1.2.38rc01-03 13 10238 12.so.0.38[.0]
|
238
|
+
* 1.0.47 10 10047 10.so.0.47[.0]
|
239
|
+
* 1.2.38 13 10238 12.so.0.38[.0]
|
240
|
+
* 1.2.39beta01-05 13 10239 12.so.0.39[.0]
|
241
|
+
* 1.2.39rc01 13 10239 12.so.0.39[.0]
|
242
|
+
* 1.0.48 10 10048 10.so.0.48[.0]
|
243
|
+
* 1.2.39 13 10239 12.so.0.39[.0]
|
210
244
|
*
|
211
245
|
* Henceforth the source version will match the shared-library major
|
212
246
|
* and minor numbers; the shared-library major version number will be
|
@@ -236,8 +270,10 @@
|
|
236
270
|
* If you modify libpng you may insert additional notices immediately following
|
237
271
|
* this sentence.
|
238
272
|
*
|
239
|
-
*
|
240
|
-
*
|
273
|
+
* This code is released under the libpng license.
|
274
|
+
*
|
275
|
+
* libpng versions 1.2.6, August 15, 2004, through 1.2.39, August 13, 2009, are
|
276
|
+
* Copyright (c) 2004, 2006-2009 Glenn Randers-Pehrson, and are
|
241
277
|
* distributed according to the same disclaimer and license as libpng-1.2.5
|
242
278
|
* with the following individual added to the list of Contributing Authors:
|
243
279
|
*
|
@@ -348,13 +384,13 @@
|
|
348
384
|
* Y2K compliance in libpng:
|
349
385
|
* =========================
|
350
386
|
*
|
351
|
-
*
|
387
|
+
* August 13, 2009
|
352
388
|
*
|
353
389
|
* Since the PNG Development group is an ad-hoc body, we can't make
|
354
390
|
* an official declaration.
|
355
391
|
*
|
356
392
|
* This is your unofficial assurance that libpng from version 0.71 and
|
357
|
-
* upward through 1.2.
|
393
|
+
* upward through 1.2.39 are Y2K compliant. It is my belief that earlier
|
358
394
|
* versions were also Y2K compliant.
|
359
395
|
*
|
360
396
|
* Libpng only has three year fields. One is a 2-byte unsigned integer
|
@@ -410,9 +446,9 @@
|
|
410
446
|
*/
|
411
447
|
|
412
448
|
/* Version information for png.h - this should match the version in png.c */
|
413
|
-
#define PNG_LIBPNG_VER_STRING "1.2.
|
449
|
+
#define PNG_LIBPNG_VER_STRING "1.2.39"
|
414
450
|
#define PNG_HEADER_VERSION_STRING \
|
415
|
-
" libpng version 1.2.
|
451
|
+
" libpng version 1.2.39 - August 13, 2009\n"
|
416
452
|
|
417
453
|
#define PNG_LIBPNG_VER_SONUM 0
|
418
454
|
#define PNG_LIBPNG_VER_DLLNUM 13
|
@@ -420,9 +456,10 @@
|
|
420
456
|
/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */
|
421
457
|
#define PNG_LIBPNG_VER_MAJOR 1
|
422
458
|
#define PNG_LIBPNG_VER_MINOR 2
|
423
|
-
#define PNG_LIBPNG_VER_RELEASE
|
459
|
+
#define PNG_LIBPNG_VER_RELEASE 39
|
424
460
|
/* This should match the numeric part of the final component of
|
425
|
-
* PNG_LIBPNG_VER_STRING, omitting any leading zero:
|
461
|
+
* PNG_LIBPNG_VER_STRING, omitting any leading zero:
|
462
|
+
*/
|
426
463
|
|
427
464
|
#define PNG_LIBPNG_VER_BUILD 0
|
428
465
|
|
@@ -432,7 +469,7 @@
|
|
432
469
|
#define PNG_LIBPNG_BUILD_RC 3
|
433
470
|
#define PNG_LIBPNG_BUILD_STABLE 4
|
434
471
|
#define PNG_LIBPNG_BUILD_RELEASE_STATUS_MASK 7
|
435
|
-
|
472
|
+
|
436
473
|
/* Release-Specific Flags */
|
437
474
|
#define PNG_LIBPNG_BUILD_PATCH 8 /* Can be OR'ed with
|
438
475
|
PNG_LIBPNG_BUILD_STABLE only */
|
@@ -447,8 +484,9 @@
|
|
447
484
|
* We must not include leading zeros.
|
448
485
|
* Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only
|
449
486
|
* version 1.0.0 was mis-numbered 100 instead of 10000). From
|
450
|
-
* version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release
|
451
|
-
|
487
|
+
* version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release
|
488
|
+
*/
|
489
|
+
#define PNG_LIBPNG_VER 10239 /* 1.2.39 */
|
452
490
|
|
453
491
|
#ifndef PNG_VERSION_INFO_ONLY
|
454
492
|
/* include the compression library's header */
|
@@ -463,12 +501,12 @@
|
|
463
501
|
/* Ref MSDN: Private as priority over Special
|
464
502
|
* VS_FF_PRIVATEBUILD File *was not* built using standard release
|
465
503
|
* procedures. If this value is given, the StringFileInfo block must
|
466
|
-
* contain a PrivateBuild string.
|
504
|
+
* contain a PrivateBuild string.
|
467
505
|
*
|
468
506
|
* VS_FF_SPECIALBUILD File *was* built by the original company using
|
469
507
|
* standard release procedures but is a variation of the standard
|
470
508
|
* file of the same version number. If this value is given, the
|
471
|
-
* StringFileInfo block must contain a SpecialBuild string.
|
509
|
+
* StringFileInfo block must contain a SpecialBuild string.
|
472
510
|
*/
|
473
511
|
|
474
512
|
#if defined(PNG_USER_PRIVATEBUILD)
|
@@ -530,7 +568,7 @@ extern "C" {
|
|
530
568
|
#define png_write_status_ptr_NULL NULL
|
531
569
|
#endif
|
532
570
|
|
533
|
-
/*
|
571
|
+
/* Variables declared in png.c - only it needs to define PNG_NO_EXTERN */
|
534
572
|
#if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN)
|
535
573
|
/* Version information for C files, stored in png.c. This had better match
|
536
574
|
* the version above.
|
@@ -656,7 +694,8 @@ typedef png_text FAR * FAR * png_textpp;
|
|
656
694
|
#endif
|
657
695
|
|
658
696
|
/* Supported compression types for text in PNG files (tEXt, and zTXt).
|
659
|
-
* The values of the PNG_TEXT_COMPRESSION_ defines should NOT be changed.
|
697
|
+
* The values of the PNG_TEXT_COMPRESSION_ defines should NOT be changed.
|
698
|
+
*/
|
660
699
|
#define PNG_TEXT_COMPRESSION_NONE_WR -3
|
661
700
|
#define PNG_TEXT_COMPRESSION_zTXt_WR -2
|
662
701
|
#define PNG_TEXT_COMPRESSION_NONE -1
|
@@ -683,7 +722,8 @@ typedef struct png_time_struct
|
|
683
722
|
typedef png_time FAR * png_timep;
|
684
723
|
typedef png_time FAR * FAR * png_timepp;
|
685
724
|
|
686
|
-
#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
|
725
|
+
#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) || \
|
726
|
+
defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED)
|
687
727
|
/* png_unknown_chunk is a structure to hold queued chunks for which there is
|
688
728
|
* no specific support. The idea is that we can use this to queue
|
689
729
|
* up private chunks for output even though the library doesn't actually
|
@@ -918,8 +958,9 @@ defined(PNG_READ_BACKGROUND_SUPPORTED)
|
|
918
958
|
png_uint_32 free_me; /* flags items libpng is responsible for freeing */
|
919
959
|
#endif
|
920
960
|
|
921
|
-
#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
|
922
|
-
|
961
|
+
#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED) || \
|
962
|
+
defined(PNG_HANDLE_AS_UNKNOWN_SUPPORTED)
|
963
|
+
/* Storage for unknown chunks that the library doesn't recognize. */
|
923
964
|
png_unknown_chunkp unknown_chunks;
|
924
965
|
png_size_t unknown_chunks_num;
|
925
966
|
#endif
|
@@ -934,7 +975,7 @@ defined(PNG_READ_BACKGROUND_SUPPORTED)
|
|
934
975
|
#endif
|
935
976
|
|
936
977
|
#if defined(PNG_sPLT_SUPPORTED)
|
937
|
-
/*
|
978
|
+
/* Data on sPLT chunks (there may be more than one). */
|
938
979
|
png_sPLT_tp splt_palettes;
|
939
980
|
png_uint_32 splt_palettes_num;
|
940
981
|
#endif
|
@@ -1149,7 +1190,10 @@ typedef void (PNGAPI *png_unknown_chunk_ptr) PNGARG((png_structp));
|
|
1149
1190
|
#define PNG_TRANSFORM_SWAP_ALPHA 0x0100 /* read and write */
|
1150
1191
|
#define PNG_TRANSFORM_SWAP_ENDIAN 0x0200 /* read and write */
|
1151
1192
|
#define PNG_TRANSFORM_INVERT_ALPHA 0x0400 /* read and write */
|
1152
|
-
#define PNG_TRANSFORM_STRIP_FILLER 0x0800 /* WRITE only */
|
1193
|
+
#define PNG_TRANSFORM_STRIP_FILLER 0x0800 /* WRITE only, deprecated */
|
1194
|
+
/* Added to libpng-1.2.34 */
|
1195
|
+
#define PNG_TRANSFORM_STRIP_FILLER_BEFORE 0x0800 /* WRITE only */
|
1196
|
+
#define PNG_TRANSFORM_STRIP_FILLER_AFTER 0x1000 /* WRITE only */
|
1153
1197
|
|
1154
1198
|
/* Flags for MNG supported features */
|
1155
1199
|
#define PNG_FLAG_MNG_EMPTY_PLTE 0x01
|
@@ -1266,7 +1310,7 @@ struct png_struct_def
|
|
1266
1310
|
#endif /* PNG_bKGD_SUPPORTED */
|
1267
1311
|
|
1268
1312
|
#if defined(PNG_WRITE_FLUSH_SUPPORTED)
|
1269
|
-
png_flush_ptr output_flush_fn
|
1313
|
+
png_flush_ptr output_flush_fn; /* Function for flushing output */
|
1270
1314
|
png_uint_32 flush_dist; /* how many rows apart to flush, 0 - no flush */
|
1271
1315
|
png_uint_32 flush_rows; /* number of rows written since last flush */
|
1272
1316
|
#endif
|
@@ -1364,7 +1408,7 @@ struct png_struct_def
|
|
1364
1408
|
/* New members added in libpng-1.0.6 */
|
1365
1409
|
|
1366
1410
|
#ifdef PNG_FREE_ME_SUPPORTED
|
1367
|
-
png_uint_32 free_me;
|
1411
|
+
png_uint_32 free_me; /* flags items libpng is responsible for freeing */
|
1368
1412
|
#endif
|
1369
1413
|
|
1370
1414
|
#if defined(PNG_USER_CHUNKS_SUPPORTED)
|
@@ -1372,7 +1416,7 @@ struct png_struct_def
|
|
1372
1416
|
png_user_chunk_ptr read_user_chunk_fn; /* user read chunk handler */
|
1373
1417
|
#endif
|
1374
1418
|
|
1375
|
-
#
|
1419
|
+
#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
|
1376
1420
|
int num_chunk_list;
|
1377
1421
|
png_bytep chunk_list;
|
1378
1422
|
#endif
|
@@ -1426,21 +1470,21 @@ struct png_struct_def
|
|
1426
1470
|
|
1427
1471
|
/* New members added in libpng-1.0.2 but first enabled by default in 1.2.0 */
|
1428
1472
|
#ifdef PNG_USER_MEM_SUPPORTED
|
1429
|
-
png_voidp mem_ptr;
|
1430
|
-
png_malloc_ptr malloc_fn;
|
1431
|
-
png_free_ptr free_fn;
|
1473
|
+
png_voidp mem_ptr; /* user supplied struct for mem functions */
|
1474
|
+
png_malloc_ptr malloc_fn; /* function for allocating memory */
|
1475
|
+
png_free_ptr free_fn; /* function for freeing memory */
|
1432
1476
|
#endif
|
1433
1477
|
|
1434
1478
|
/* New member added in libpng-1.0.13 and 1.2.0 */
|
1435
|
-
png_bytep big_row_buf;
|
1479
|
+
png_bytep big_row_buf; /* buffer to save current (unfiltered) row */
|
1436
1480
|
|
1437
1481
|
#if defined(PNG_READ_DITHER_SUPPORTED)
|
1438
1482
|
/* The following three members were added at version 1.0.14 and 1.2.4 */
|
1439
|
-
png_bytep dither_sort;
|
1440
|
-
png_bytep index_to_palette;
|
1441
|
-
|
1442
|
-
png_bytep palette_to_index;
|
1443
|
-
|
1483
|
+
png_bytep dither_sort; /* working sort array */
|
1484
|
+
png_bytep index_to_palette; /* where the original index currently is */
|
1485
|
+
/* in the palette */
|
1486
|
+
png_bytep palette_to_index; /* which original index points to this */
|
1487
|
+
/* palette color */
|
1444
1488
|
#endif
|
1445
1489
|
|
1446
1490
|
/* New members added in libpng-1.0.16 and 1.2.6 */
|
@@ -1453,7 +1497,7 @@ struct png_struct_def
|
|
1453
1497
|
|
1454
1498
|
/* New member added in libpng-1.0.25 and 1.2.17 */
|
1455
1499
|
#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
|
1456
|
-
/*
|
1500
|
+
/* Storage for unknown chunk that the library doesn't recognize. */
|
1457
1501
|
png_unknown_chunk unknown_chunk;
|
1458
1502
|
#endif
|
1459
1503
|
|
@@ -1469,7 +1513,7 @@ struct png_struct_def
|
|
1469
1513
|
/* This triggers a compiler error in png.c, if png.c and png.h
|
1470
1514
|
* do not agree upon the version number.
|
1471
1515
|
*/
|
1472
|
-
typedef png_structp
|
1516
|
+
typedef png_structp version_1_2_39;
|
1473
1517
|
|
1474
1518
|
typedef png_struct FAR * FAR * png_structpp;
|
1475
1519
|
|
@@ -1573,7 +1617,7 @@ extern PNG_EXPORT(void,png_write_info) PNGARG((png_structp png_ptr,
|
|
1573
1617
|
png_infop info_ptr));
|
1574
1618
|
|
1575
1619
|
#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
|
1576
|
-
/*
|
1620
|
+
/* Read the information before the actual image data. */
|
1577
1621
|
extern PNG_EXPORT(void,png_read_info) PNGARG((png_structp png_ptr,
|
1578
1622
|
png_infop info_ptr));
|
1579
1623
|
#endif
|
@@ -1586,11 +1630,11 @@ extern PNG_EXPORT(png_charp,png_convert_to_rfc1123)
|
|
1586
1630
|
#if !defined(_WIN32_WCE)
|
1587
1631
|
/* "time.h" functions are not supported on WindowsCE */
|
1588
1632
|
#if defined(PNG_WRITE_tIME_SUPPORTED)
|
1589
|
-
/*
|
1633
|
+
/* Convert from a struct tm to png_time */
|
1590
1634
|
extern PNG_EXPORT(void,png_convert_from_struct_tm) PNGARG((png_timep ptime,
|
1591
1635
|
struct tm FAR * ttime));
|
1592
1636
|
|
1593
|
-
/*
|
1637
|
+
/* Convert from time_t to png_time. Uses gmtime() */
|
1594
1638
|
extern PNG_EXPORT(void,png_convert_from_time_t) PNGARG((png_timep ptime,
|
1595
1639
|
time_t ttime));
|
1596
1640
|
#endif /* PNG_WRITE_tIME_SUPPORTED */
|
@@ -1710,7 +1754,7 @@ extern PNG_EXPORT(void,png_set_background) PNGARG((png_structp png_ptr,
|
|
1710
1754
|
#endif
|
1711
1755
|
|
1712
1756
|
#if defined(PNG_READ_16_TO_8_SUPPORTED)
|
1713
|
-
/*
|
1757
|
+
/* Strip the second byte of information from a 16-bit depth file. */
|
1714
1758
|
extern PNG_EXPORT(void,png_set_strip_16) PNGARG((png_structp png_ptr));
|
1715
1759
|
#endif
|
1716
1760
|
|
@@ -1746,74 +1790,74 @@ extern PNG_EXPORT(void,png_set_flush) PNGARG((png_structp png_ptr, int nrows));
|
|
1746
1790
|
extern PNG_EXPORT(void,png_write_flush) PNGARG((png_structp png_ptr));
|
1747
1791
|
#endif
|
1748
1792
|
|
1749
|
-
/*
|
1793
|
+
/* Optional update palette with requested transformations */
|
1750
1794
|
extern PNG_EXPORT(void,png_start_read_image) PNGARG((png_structp png_ptr));
|
1751
1795
|
|
1752
|
-
/*
|
1796
|
+
/* Optional call to update the users info structure */
|
1753
1797
|
extern PNG_EXPORT(void,png_read_update_info) PNGARG((png_structp png_ptr,
|
1754
1798
|
png_infop info_ptr));
|
1755
1799
|
|
1756
1800
|
#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
|
1757
|
-
/*
|
1801
|
+
/* Read one or more rows of image data. */
|
1758
1802
|
extern PNG_EXPORT(void,png_read_rows) PNGARG((png_structp png_ptr,
|
1759
1803
|
png_bytepp row, png_bytepp display_row, png_uint_32 num_rows));
|
1760
1804
|
#endif
|
1761
1805
|
|
1762
1806
|
#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
|
1763
|
-
/*
|
1807
|
+
/* Read a row of data. */
|
1764
1808
|
extern PNG_EXPORT(void,png_read_row) PNGARG((png_structp png_ptr,
|
1765
1809
|
png_bytep row,
|
1766
1810
|
png_bytep display_row));
|
1767
1811
|
#endif
|
1768
1812
|
|
1769
1813
|
#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
|
1770
|
-
/*
|
1814
|
+
/* Read the whole image into memory at once. */
|
1771
1815
|
extern PNG_EXPORT(void,png_read_image) PNGARG((png_structp png_ptr,
|
1772
1816
|
png_bytepp image));
|
1773
1817
|
#endif
|
1774
1818
|
|
1775
|
-
/*
|
1819
|
+
/* Write a row of image data */
|
1776
1820
|
extern PNG_EXPORT(void,png_write_row) PNGARG((png_structp png_ptr,
|
1777
1821
|
png_bytep row));
|
1778
1822
|
|
1779
|
-
/*
|
1823
|
+
/* Write a few rows of image data */
|
1780
1824
|
extern PNG_EXPORT(void,png_write_rows) PNGARG((png_structp png_ptr,
|
1781
1825
|
png_bytepp row, png_uint_32 num_rows));
|
1782
1826
|
|
1783
|
-
/*
|
1827
|
+
/* Write the image data */
|
1784
1828
|
extern PNG_EXPORT(void,png_write_image) PNGARG((png_structp png_ptr,
|
1785
1829
|
png_bytepp image));
|
1786
1830
|
|
1787
|
-
/*
|
1831
|
+
/* Writes the end of the PNG file. */
|
1788
1832
|
extern PNG_EXPORT(void,png_write_end) PNGARG((png_structp png_ptr,
|
1789
1833
|
png_infop info_ptr));
|
1790
1834
|
|
1791
1835
|
#ifndef PNG_NO_SEQUENTIAL_READ_SUPPORTED
|
1792
|
-
/*
|
1836
|
+
/* Read the end of the PNG file. */
|
1793
1837
|
extern PNG_EXPORT(void,png_read_end) PNGARG((png_structp png_ptr,
|
1794
1838
|
png_infop info_ptr));
|
1795
1839
|
#endif
|
1796
1840
|
|
1797
|
-
/*
|
1841
|
+
/* Free any memory associated with the png_info_struct */
|
1798
1842
|
extern PNG_EXPORT(void,png_destroy_info_struct) PNGARG((png_structp png_ptr,
|
1799
1843
|
png_infopp info_ptr_ptr));
|
1800
1844
|
|
1801
|
-
/*
|
1845
|
+
/* Free any memory associated with the png_struct and the png_info_structs */
|
1802
1846
|
extern PNG_EXPORT(void,png_destroy_read_struct) PNGARG((png_structpp
|
1803
1847
|
png_ptr_ptr, png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr));
|
1804
1848
|
|
1805
|
-
/*
|
1849
|
+
/* Free all memory used by the read (old method - NOT DLL EXPORTED) */
|
1806
1850
|
extern void png_read_destroy PNGARG((png_structp png_ptr, png_infop info_ptr,
|
1807
1851
|
png_infop end_info_ptr));
|
1808
1852
|
|
1809
|
-
/*
|
1853
|
+
/* Free any memory associated with the png_struct and the png_info_structs */
|
1810
1854
|
extern PNG_EXPORT(void,png_destroy_write_struct)
|
1811
1855
|
PNGARG((png_structpp png_ptr_ptr, png_infopp info_ptr_ptr));
|
1812
1856
|
|
1813
|
-
/*
|
1857
|
+
/* Free any memory used in png_ptr struct (old method - NOT DLL EXPORTED) */
|
1814
1858
|
extern void png_write_destroy PNGARG((png_structp png_ptr));
|
1815
1859
|
|
1816
|
-
/*
|
1860
|
+
/* Set the libpng method of handling chunk CRC errors */
|
1817
1861
|
extern PNG_EXPORT(void,png_set_crc_action) PNGARG((png_structp png_ptr,
|
1818
1862
|
int crit_action, int ancil_action));
|
1819
1863
|
|
@@ -1841,7 +1885,7 @@ extern PNG_EXPORT(void,png_set_crc_action) PNGARG((png_structp png_ptr,
|
|
1841
1885
|
* header file (zlib.h) for an explination of the compression functions.
|
1842
1886
|
*/
|
1843
1887
|
|
1844
|
-
/*
|
1888
|
+
/* Set the filtering method(s) used by libpng. Currently, the only valid
|
1845
1889
|
* value for "method" is 0.
|
1846
1890
|
*/
|
1847
1891
|
extern PNG_EXPORT(void,png_set_filter) PNGARG((png_structp png_ptr, int method,
|
@@ -1969,6 +2013,11 @@ extern PNG_EXPORT(png_voidp,png_get_error_ptr) PNGARG((png_structp png_ptr));
|
|
1969
2013
|
* If buffered output is not used, then output_flush_fn can be set to NULL.
|
1970
2014
|
* If PNG_WRITE_FLUSH_SUPPORTED is not defined at libpng compile time
|
1971
2015
|
* output_flush_fn will be ignored (and thus can be NULL).
|
2016
|
+
* It is probably a mistake to use NULL for output_flush_fn if
|
2017
|
+
* write_data_fn is not also NULL unless you have built libpng with
|
2018
|
+
* PNG_WRITE_FLUSH_SUPPORTED undefined, because in this case libpng's
|
2019
|
+
* default flush function, which uses the standard *FILE structure, will
|
2020
|
+
* be used.
|
1972
2021
|
*/
|
1973
2022
|
extern PNG_EXPORT(void,png_set_write_fn) PNGARG((png_structp png_ptr,
|
1974
2023
|
png_voidp io_ptr, png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn));
|
@@ -2033,11 +2082,11 @@ extern PNG_EXPORT(void,png_set_progressive_read_fn) PNGARG((png_structp png_ptr,
|
|
2033
2082
|
png_progressive_info_ptr info_fn, png_progressive_row_ptr row_fn,
|
2034
2083
|
png_progressive_end_ptr end_fn));
|
2035
2084
|
|
2036
|
-
/*
|
2085
|
+
/* Returns the user pointer associated with the push read functions */
|
2037
2086
|
extern PNG_EXPORT(png_voidp,png_get_progressive_ptr)
|
2038
2087
|
PNGARG((png_structp png_ptr));
|
2039
2088
|
|
2040
|
-
/*
|
2089
|
+
/* Function to be called when data becomes available */
|
2041
2090
|
extern PNG_EXPORT(void,png_process_data) PNGARG((png_structp png_ptr,
|
2042
2091
|
png_infop info_ptr, png_bytep buffer, png_size_t buffer_size));
|
2043
2092
|
|
@@ -2059,7 +2108,7 @@ extern PNG_EXPORT(png_voidp,png_malloc_warn) PNGARG((png_structp png_ptr,
|
|
2059
2108
|
png_uint_32 size));
|
2060
2109
|
#endif
|
2061
2110
|
|
2062
|
-
/*
|
2111
|
+
/* Frees a pointer allocated by png_malloc() */
|
2063
2112
|
extern PNG_EXPORT(void,png_free) PNGARG((png_structp png_ptr, png_voidp ptr));
|
2064
2113
|
|
2065
2114
|
#if defined(PNG_1_0_X)
|
@@ -2076,11 +2125,12 @@ extern PNG_EXPORT(void,png_free_data) PNGARG((png_structp png_ptr,
|
|
2076
2125
|
png_infop info_ptr, png_uint_32 free_me, int num));
|
2077
2126
|
#ifdef PNG_FREE_ME_SUPPORTED
|
2078
2127
|
/* Reassign responsibility for freeing existing data, whether allocated
|
2079
|
-
* by libpng or by the application
|
2128
|
+
* by libpng or by the application
|
2129
|
+
*/
|
2080
2130
|
extern PNG_EXPORT(void,png_data_freer) PNGARG((png_structp png_ptr,
|
2081
2131
|
png_infop info_ptr, int freer, png_uint_32 mask));
|
2082
2132
|
#endif
|
2083
|
-
/*
|
2133
|
+
/* Assignments for png_data_freer */
|
2084
2134
|
#define PNG_DESTROY_WILL_FREE_DATA 1
|
2085
2135
|
#define PNG_SET_WILL_FREE_DATA 1
|
2086
2136
|
#define PNG_USER_WILL_FREE_DATA 2
|
@@ -2164,11 +2214,13 @@ png_infop info_ptr));
|
|
2164
2214
|
|
2165
2215
|
#if defined(PNG_INFO_IMAGE_SUPPORTED)
|
2166
2216
|
/* Returns row_pointers, which is an array of pointers to scanlines that was
|
2167
|
-
returned from png_read_png().
|
2217
|
+
* returned from png_read_png().
|
2218
|
+
*/
|
2168
2219
|
extern PNG_EXPORT(png_bytepp,png_get_rows) PNGARG((png_structp png_ptr,
|
2169
2220
|
png_infop info_ptr));
|
2170
2221
|
/* Set row_pointers, which is an array of pointers to scanlines for use
|
2171
|
-
by png_write_png().
|
2222
|
+
* by png_write_png().
|
2223
|
+
*/
|
2172
2224
|
extern PNG_EXPORT(void,png_set_rows) PNGARG((png_structp png_ptr,
|
2173
2225
|
png_infop info_ptr, png_bytepp row_pointers));
|
2174
2226
|
#endif
|
@@ -2469,8 +2521,8 @@ extern PNG_EXPORT(void,png_set_sCAL_s) PNGARG((png_structp png_ptr,
|
|
2469
2521
|
#endif
|
2470
2522
|
#endif /* PNG_sCAL_SUPPORTED || PNG_WRITE_sCAL_SUPPORTED */
|
2471
2523
|
|
2472
|
-
#
|
2473
|
-
/*
|
2524
|
+
#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
|
2525
|
+
/* Provide a list of chunks and how they are to be handled, if the built-in
|
2474
2526
|
handling or default unknown chunk handling is not desired. Any chunks not
|
2475
2527
|
listed will be handled in the default manner. The IHDR and IEND chunks
|
2476
2528
|
must not be listed.
|
@@ -2481,6 +2533,10 @@ extern PNG_EXPORT(void,png_set_sCAL_s) PNGARG((png_structp png_ptr,
|
|
2481
2533
|
*/
|
2482
2534
|
extern PNG_EXPORT(void, png_set_keep_unknown_chunks) PNGARG((png_structp
|
2483
2535
|
png_ptr, int keep, png_bytep chunk_list, int num_chunks));
|
2536
|
+
PNG_EXPORT(int,png_handle_as_unknown) PNGARG((png_structp png_ptr, png_bytep
|
2537
|
+
chunk_name));
|
2538
|
+
#endif
|
2539
|
+
#if defined(PNG_UNKNOWN_CHUNKS_SUPPORTED)
|
2484
2540
|
extern PNG_EXPORT(void, png_set_unknown_chunks) PNGARG((png_structp png_ptr,
|
2485
2541
|
png_infop info_ptr, png_unknown_chunkp unknowns, int num_unknowns));
|
2486
2542
|
extern PNG_EXPORT(void, png_set_unknown_chunk_location)
|
@@ -2488,14 +2544,11 @@ extern PNG_EXPORT(void, png_set_unknown_chunk_location)
|
|
2488
2544
|
extern PNG_EXPORT(png_uint_32,png_get_unknown_chunks) PNGARG((png_structp
|
2489
2545
|
png_ptr, png_infop info_ptr, png_unknown_chunkpp entries));
|
2490
2546
|
#endif
|
2491
|
-
#ifdef PNG_HANDLE_AS_UNKNOWN_SUPPORTED
|
2492
|
-
PNG_EXPORT(int,png_handle_as_unknown) PNGARG((png_structp png_ptr, png_bytep
|
2493
|
-
chunk_name));
|
2494
|
-
#endif
|
2495
2547
|
|
2496
2548
|
/* Png_free_data() will turn off the "valid" flag for anything it frees.
|
2497
|
-
|
2498
|
-
|
2549
|
+
* If you need to turn it off for a chunk that your application has freed,
|
2550
|
+
* you can use png_set_invalid(png_ptr, info_ptr, PNG_INFO_CHNK);
|
2551
|
+
*/
|
2499
2552
|
extern PNG_EXPORT(void, png_set_invalid) PNGARG((png_structp png_ptr,
|
2500
2553
|
png_infop info_ptr, int mask));
|
2501
2554
|
|
@@ -2521,34 +2574,90 @@ extern PNG_EXPORT(void, png_write_png) PNGARG((png_structp png_ptr,
|
|
2521
2574
|
#if !defined(PNG_DEBUG_FILE) && defined(_MSC_VER)
|
2522
2575
|
#include <crtdbg.h>
|
2523
2576
|
#if (PNG_DEBUG > 1)
|
2524
|
-
#
|
2525
|
-
#define
|
2526
|
-
#
|
2577
|
+
#ifndef _DEBUG
|
2578
|
+
# define _DEBUG
|
2579
|
+
#endif
|
2580
|
+
#ifndef png_debug
|
2581
|
+
#define png_debug(l,m) _RPT0(_CRT_WARN,m PNG_STRING_NEWLINE)
|
2582
|
+
#endif
|
2583
|
+
#ifndef png_debug1
|
2584
|
+
#define png_debug1(l,m,p1) _RPT1(_CRT_WARN,m PNG_STRING_NEWLINE,p1)
|
2585
|
+
#endif
|
2586
|
+
#ifndef png_debug2
|
2587
|
+
#define png_debug2(l,m,p1,p2) _RPT2(_CRT_WARN,m PNG_STRING_NEWLINE,p1,p2)
|
2588
|
+
#endif
|
2527
2589
|
#endif
|
2528
2590
|
#else /* PNG_DEBUG_FILE || !_MSC_VER */
|
2529
2591
|
#ifndef PNG_DEBUG_FILE
|
2530
2592
|
#define PNG_DEBUG_FILE stderr
|
2531
2593
|
#endif /* PNG_DEBUG_FILE */
|
2594
|
+
|
2532
2595
|
#if (PNG_DEBUG > 1)
|
2533
|
-
|
2534
|
-
|
2535
|
-
|
2536
|
-
|
2537
|
-
|
2538
|
-
|
2539
|
-
|
2540
|
-
|
2541
|
-
|
2542
|
-
|
2543
|
-
|
2544
|
-
|
2545
|
-
#
|
2546
|
-
|
2547
|
-
|
2548
|
-
|
2549
|
-
(
|
2550
|
-
|
2596
|
+
/* Note: ["%s"m PNG_STRING_NEWLINE] probably does not work on non-ISO
|
2597
|
+
* compilers.
|
2598
|
+
*/
|
2599
|
+
# ifdef __STDC__
|
2600
|
+
# ifndef png_debug
|
2601
|
+
# define png_debug(l,m) \
|
2602
|
+
{ \
|
2603
|
+
int num_tabs=l; \
|
2604
|
+
fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \
|
2605
|
+
(num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":"")))); \
|
2606
|
+
}
|
2607
|
+
# endif
|
2608
|
+
# ifndef png_debug1
|
2609
|
+
# define png_debug1(l,m,p1) \
|
2610
|
+
{ \
|
2611
|
+
int num_tabs=l; \
|
2612
|
+
fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \
|
2613
|
+
(num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))),p1); \
|
2614
|
+
}
|
2615
|
+
# endif
|
2616
|
+
# ifndef png_debug2
|
2617
|
+
# define png_debug2(l,m,p1,p2) \
|
2618
|
+
{ \
|
2619
|
+
int num_tabs=l; \
|
2620
|
+
fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \
|
2621
|
+
(num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))),p1,p2); \
|
2622
|
+
}
|
2623
|
+
# endif
|
2624
|
+
# else /* __STDC __ */
|
2625
|
+
# ifndef png_debug
|
2626
|
+
# define png_debug(l,m) \
|
2627
|
+
{ \
|
2628
|
+
int num_tabs=l; \
|
2629
|
+
char format[256]; \
|
2630
|
+
snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \
|
2631
|
+
(num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \
|
2632
|
+
m,PNG_STRING_NEWLINE); \
|
2633
|
+
fprintf(PNG_DEBUG_FILE,format); \
|
2634
|
+
}
|
2635
|
+
# endif
|
2636
|
+
# ifndef png_debug1
|
2637
|
+
# define png_debug1(l,m,p1) \
|
2638
|
+
{ \
|
2639
|
+
int num_tabs=l; \
|
2640
|
+
char format[256]; \
|
2641
|
+
snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \
|
2642
|
+
(num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \
|
2643
|
+
m,PNG_STRING_NEWLINE); \
|
2644
|
+
fprintf(PNG_DEBUG_FILE,format,p1); \
|
2645
|
+
}
|
2646
|
+
# endif
|
2647
|
+
# ifndef png_debug2
|
2648
|
+
# define png_debug2(l,m,p1,p2) \
|
2649
|
+
{ \
|
2650
|
+
int num_tabs=l; \
|
2651
|
+
char format[256]; \
|
2652
|
+
snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \
|
2653
|
+
(num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \
|
2654
|
+
m,PNG_STRING_NEWLINE); \
|
2655
|
+
fprintf(PNG_DEBUG_FILE,format,p1,p2); \
|
2656
|
+
}
|
2657
|
+
# endif
|
2658
|
+
# endif /* __STDC __ */
|
2551
2659
|
#endif /* (PNG_DEBUG > 1) */
|
2660
|
+
|
2552
2661
|
#endif /* _MSC_VER */
|
2553
2662
|
#endif /* (PNG_DEBUG > 0) */
|
2554
2663
|
#endif /* PNG_DEBUG */
|
@@ -2643,17 +2752,17 @@ extern PNG_EXPORT(void,png_set_mmx_thresholds)
|
|
2643
2752
|
#if !defined(PNG_1_0_X)
|
2644
2753
|
/* png.c, pnggccrd.c, or pngvcrd.c */
|
2645
2754
|
extern PNG_EXPORT(int,png_mmx_support) PNGARG((void));
|
2755
|
+
#endif /* PNG_1_0_X */
|
2646
2756
|
#endif /* PNG_ASSEMBLER_CODE_SUPPORTED */
|
2647
2757
|
|
2648
2758
|
/* Strip the prepended error numbers ("#nnn ") from error and warning
|
2649
|
-
* messages before passing them to the error or warning handler.
|
2759
|
+
* messages before passing them to the error or warning handler.
|
2760
|
+
*/
|
2650
2761
|
#ifdef PNG_ERROR_NUMBERS_SUPPORTED
|
2651
2762
|
extern PNG_EXPORT(void,png_set_strip_error_numbers) PNGARG((png_structp
|
2652
2763
|
png_ptr, png_uint_32 strip_mode));
|
2653
2764
|
#endif
|
2654
2765
|
|
2655
|
-
#endif /* PNG_1_0_X */
|
2656
|
-
|
2657
2766
|
/* Added at libpng-1.2.6 */
|
2658
2767
|
#ifdef PNG_SET_USER_LIMITS_SUPPORTED
|
2659
2768
|
extern PNG_EXPORT(void,png_set_user_limits) PNGARG((png_structp
|
@@ -2665,7 +2774,9 @@ extern PNG_EXPORT(png_uint_32,png_get_user_height_max) PNGARG((png_structp
|
|
2665
2774
|
#endif
|
2666
2775
|
|
2667
2776
|
|
2668
|
-
/* Maintainer: Put new public prototypes here ^, in libpng.3, and
|
2777
|
+
/* Maintainer: Put new public prototypes here ^, in libpng.3, and in
|
2778
|
+
* project defs
|
2779
|
+
*/
|
2669
2780
|
|
2670
2781
|
#ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED
|
2671
2782
|
/* With these routines we avoid an integer divide, which will be slower on
|
@@ -2694,7 +2805,7 @@ extern PNG_EXPORT(png_uint_32,png_get_user_height_max) PNGARG((png_structp
|
|
2694
2805
|
(png_uint_32)(alpha)) + (png_uint_32)32768L); \
|
2695
2806
|
(composite) = (png_uint_16)((temp + (temp >> 16)) >> 16); }
|
2696
2807
|
|
2697
|
-
#else /*
|
2808
|
+
#else /* Standard method using integer division */
|
2698
2809
|
|
2699
2810
|
# define png_composite(composite, fg, alpha, bg) \
|
2700
2811
|
(composite) = (png_byte)(((png_uint_16)(fg) * (png_uint_16)(alpha) + \
|
@@ -2777,7 +2888,7 @@ extern PNG_EXPORT(void,png_save_uint_16)
|
|
2777
2888
|
#define PNG_HAVE_PNG_SIGNATURE 0x1000
|
2778
2889
|
#define PNG_HAVE_CHUNK_AFTER_IDAT 0x2000 /* Have another chunk after IDAT */
|
2779
2890
|
|
2780
|
-
/*
|
2891
|
+
/* Flags for the transformations the PNG library does on the image data */
|
2781
2892
|
#define PNG_BGR 0x0001
|
2782
2893
|
#define PNG_INTERLACE 0x0002
|
2783
2894
|
#define PNG_PACK 0x0004
|
@@ -2811,7 +2922,7 @@ extern PNG_EXPORT(void,png_save_uint_16)
|
|
2811
2922
|
/* 0x20000000L unused */
|
2812
2923
|
/* 0x40000000L unused */
|
2813
2924
|
|
2814
|
-
/*
|
2925
|
+
/* Flags for png_create_struct */
|
2815
2926
|
#define PNG_STRUCT_PNG 0x0001
|
2816
2927
|
#define PNG_STRUCT_INFO 0x0002
|
2817
2928
|
|
@@ -2821,7 +2932,7 @@ extern PNG_EXPORT(void,png_save_uint_16)
|
|
2821
2932
|
#define PNG_COST_SHIFT 3
|
2822
2933
|
#define PNG_COST_FACTOR (1<<(PNG_COST_SHIFT))
|
2823
2934
|
|
2824
|
-
/*
|
2935
|
+
/* Flags for the png_ptr->flags rather than declaring a byte for each one */
|
2825
2936
|
#define PNG_FLAG_ZLIB_CUSTOM_STRATEGY 0x0001
|
2826
2937
|
#define PNG_FLAG_ZLIB_CUSTOM_LEVEL 0x0002
|
2827
2938
|
#define PNG_FLAG_ZLIB_CUSTOM_MEM_LEVEL 0x0004
|
@@ -2863,7 +2974,7 @@ extern PNG_EXPORT(void,png_save_uint_16)
|
|
2863
2974
|
#define PNG_FLAG_CRC_MASK (PNG_FLAG_CRC_ANCILLARY_MASK | \
|
2864
2975
|
PNG_FLAG_CRC_CRITICAL_MASK)
|
2865
2976
|
|
2866
|
-
/*
|
2977
|
+
/* Save typing and make code easier to understand */
|
2867
2978
|
|
2868
2979
|
#define PNG_COLOR_DIST(c1, c2) (abs((int)((c1).red) - (int)((c2).red)) + \
|
2869
2980
|
abs((int)((c1).green) - (int)((c2).green)) + \
|
@@ -2876,13 +2987,14 @@ extern PNG_EXPORT(void,png_save_uint_16)
|
|
2876
2987
|
(( ((width) * ((png_uint_32)(pixel_bits))) + 7) >> 3) )
|
2877
2988
|
|
2878
2989
|
/* PNG_OUT_OF_RANGE returns true if value is outside the range
|
2879
|
-
|
2880
|
-
|
2881
|
-
|
2990
|
+
* ideal-delta..ideal+delta. Each argument is evaluated twice.
|
2991
|
+
* "ideal" and "delta" should be constants, normally simple
|
2992
|
+
* integers, "value" a variable. Added to libpng-1.2.6 JB
|
2993
|
+
*/
|
2882
2994
|
#define PNG_OUT_OF_RANGE(value, ideal, delta) \
|
2883
2995
|
( (value) < (ideal)-(delta) || (value) > (ideal)+(delta) )
|
2884
2996
|
|
2885
|
-
/*
|
2997
|
+
/* Variables declared in png.c - only it needs to define PNG_NO_EXTERN */
|
2886
2998
|
#if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN)
|
2887
2999
|
/* place to hold the signature string for a PNG file. */
|
2888
3000
|
#ifdef PNG_USE_GLOBAL_ARRAYS
|
@@ -3003,7 +3115,8 @@ PNG_EXTERN void png_zfree PNGARG((voidpf png_ptr, voidpf ptr));
|
|
3003
3115
|
#endif
|
3004
3116
|
|
3005
3117
|
/* Next four functions are used internally as callbacks. PNGAPI is required
|
3006
|
-
* but not PNG_EXPORT. PNGAPI added at libpng version 1.2.3.
|
3118
|
+
* but not PNG_EXPORT. PNGAPI added at libpng version 1.2.3.
|
3119
|
+
*/
|
3007
3120
|
|
3008
3121
|
PNG_EXTERN void PNGAPI png_default_read_data PNGARG((png_structp png_ptr,
|
3009
3122
|
png_bytep data, png_size_t length));
|
@@ -3068,10 +3181,10 @@ PNG_EXTERN void png_calculate_crc PNGARG((png_structp png_ptr, png_bytep ptr,
|
|
3068
3181
|
PNG_EXTERN void png_flush PNGARG((png_structp png_ptr));
|
3069
3182
|
#endif
|
3070
3183
|
|
3071
|
-
/*
|
3184
|
+
/* Simple function to write the signature */
|
3072
3185
|
PNG_EXTERN void png_write_sig PNGARG((png_structp png_ptr));
|
3073
3186
|
|
3074
|
-
/*
|
3187
|
+
/* Write various chunks */
|
3075
3188
|
|
3076
3189
|
/* Write the IHDR chunk, and update the png_struct with the necessary
|
3077
3190
|
* information.
|
@@ -3223,12 +3336,12 @@ PNG_EXTERN void png_write_start_row PNGARG((png_structp png_ptr));
|
|
3223
3336
|
PNG_EXTERN void png_build_gamma_table PNGARG((png_structp png_ptr));
|
3224
3337
|
#endif
|
3225
3338
|
|
3226
|
-
/*
|
3339
|
+
/* Combine a row of data, dealing with alpha, etc. if requested */
|
3227
3340
|
PNG_EXTERN void png_combine_row PNGARG((png_structp png_ptr, png_bytep row,
|
3228
3341
|
int mask));
|
3229
3342
|
|
3230
3343
|
#if defined(PNG_READ_INTERLACING_SUPPORTED)
|
3231
|
-
/*
|
3344
|
+
/* Expand an interlaced row */
|
3232
3345
|
/* OLD pre-1.0.9 interface:
|
3233
3346
|
PNG_EXTERN void png_do_read_interlace PNGARG((png_row_infop row_info,
|
3234
3347
|
png_bytep row, int pass, png_uint_32 transformations));
|
@@ -3239,12 +3352,12 @@ PNG_EXTERN void png_do_read_interlace PNGARG((png_structp png_ptr));
|
|
3239
3352
|
/* GRR TO DO (2.0 or whenever): simplify other internal calling interfaces */
|
3240
3353
|
|
3241
3354
|
#if defined(PNG_WRITE_INTERLACING_SUPPORTED)
|
3242
|
-
/*
|
3355
|
+
/* Grab pixels out of a row for an interlaced pass */
|
3243
3356
|
PNG_EXTERN void png_do_write_interlace PNGARG((png_row_infop row_info,
|
3244
3357
|
png_bytep row, int pass));
|
3245
3358
|
#endif
|
3246
3359
|
|
3247
|
-
/*
|
3360
|
+
/* Unfilter a row */
|
3248
3361
|
PNG_EXTERN void png_read_filter_row PNGARG((png_structp png_ptr,
|
3249
3362
|
png_row_infop row_info, png_bytep row, png_bytep prev_row, int filter));
|
3250
3363
|
|
@@ -3255,16 +3368,16 @@ PNG_EXTERN void png_write_find_filter PNGARG((png_structp png_ptr,
|
|
3255
3368
|
/* Write out the filtered row. */
|
3256
3369
|
PNG_EXTERN void png_write_filtered_row PNGARG((png_structp png_ptr,
|
3257
3370
|
png_bytep filtered_row));
|
3258
|
-
/*
|
3371
|
+
/* Finish a row while reading, dealing with interlacing passes, etc. */
|
3259
3372
|
PNG_EXTERN void png_read_finish_row PNGARG((png_structp png_ptr));
|
3260
3373
|
|
3261
|
-
/*
|
3374
|
+
/* Initialize the row buffers, etc. */
|
3262
3375
|
PNG_EXTERN void png_read_start_row PNGARG((png_structp png_ptr));
|
3263
|
-
/*
|
3376
|
+
/* Optional call to update the users info structure */
|
3264
3377
|
PNG_EXTERN void png_read_transform_info PNGARG((png_structp png_ptr,
|
3265
3378
|
png_infop info_ptr));
|
3266
3379
|
|
3267
|
-
/*
|
3380
|
+
/* These are the functions that do the transformations */
|
3268
3381
|
#if defined(PNG_READ_FILLER_SUPPORTED)
|
3269
3382
|
PNG_EXTERN void png_do_read_filler PNGARG((png_row_infop row_info,
|
3270
3383
|
png_bytep row, png_uint_32 filler, png_uint_32 flags));
|
@@ -3386,7 +3499,7 @@ PNG_EXTERN void png_do_expand PNGARG((png_row_infop row_info,
|
|
3386
3499
|
* then calls the appropriate callback for the chunk if it is valid.
|
3387
3500
|
*/
|
3388
3501
|
|
3389
|
-
/*
|
3502
|
+
/* Decode the IHDR chunk */
|
3390
3503
|
PNG_EXTERN void png_handle_IHDR PNGARG((png_structp png_ptr, png_infop info_ptr,
|
3391
3504
|
png_uint_32 length));
|
3392
3505
|
PNG_EXTERN void png_handle_PLTE PNGARG((png_structp png_ptr, png_infop info_ptr,
|
@@ -3485,7 +3598,7 @@ PNG_EXTERN void png_handle_unknown PNGARG((png_structp png_ptr,
|
|
3485
3598
|
PNG_EXTERN void png_check_chunk_name PNGARG((png_structp png_ptr,
|
3486
3599
|
png_bytep chunk_name));
|
3487
3600
|
|
3488
|
-
/*
|
3601
|
+
/* Handle the transformations for reading and writing */
|
3489
3602
|
PNG_EXTERN void png_do_read_transformations PNGARG((png_structp png_ptr));
|
3490
3603
|
PNG_EXTERN void png_do_write_transformations PNGARG((png_structp png_ptr));
|
3491
3604
|
|
@@ -3579,6 +3692,23 @@ png_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type));
|
|
3579
3692
|
/* Read the chunk header (length + type name) */
|
3580
3693
|
PNG_EXTERN png_uint_32 png_read_chunk_header PNGARG((png_structp png_ptr));
|
3581
3694
|
|
3695
|
+
/* Added at libpng version 1.2.34 */
|
3696
|
+
#if defined(PNG_cHRM_SUPPORTED)
|
3697
|
+
PNG_EXTERN int png_check_cHRM_fixed PNGARG((png_structp png_ptr,
|
3698
|
+
png_fixed_point int_white_x, png_fixed_point int_white_y,
|
3699
|
+
png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point
|
3700
|
+
int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x,
|
3701
|
+
png_fixed_point int_blue_y));
|
3702
|
+
#endif
|
3703
|
+
|
3704
|
+
#if defined(PNG_cHRM_SUPPORTED)
|
3705
|
+
#if !defined(PNG_NO_CHECK_cHRM)
|
3706
|
+
/* Added at libpng version 1.2.34 */
|
3707
|
+
PNG_EXTERN void png_64bit_product (long v1, long v2, unsigned long *hi_product,
|
3708
|
+
unsigned long *lo_product);
|
3709
|
+
#endif
|
3710
|
+
#endif
|
3711
|
+
|
3582
3712
|
/* Maintainer: Put new private prototypes here ^ and in libpngpf.3 */
|
3583
3713
|
|
3584
3714
|
#endif /* PNG_INTERNAL */
|
@@ -3588,5 +3718,5 @@ PNG_EXTERN png_uint_32 png_read_chunk_header PNGARG((png_structp png_ptr));
|
|
3588
3718
|
#endif
|
3589
3719
|
|
3590
3720
|
#endif /* PNG_VERSION_INFO_ONLY */
|
3591
|
-
/*
|
3721
|
+
/* Do not put anything past this line */
|
3592
3722
|
#endif /* PNG_H */
|