Mercurial > fife-parpg
comparison ext/libpng-1.2.29/contrib/gregbook/readpng2.h @ 0:4a0efb7baf70
* Datasets becomes the new trunk and retires after that :-)
author | mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222 |
---|---|
date | Sun, 29 Jun 2008 18:44:17 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4a0efb7baf70 |
---|---|
1 /*--------------------------------------------------------------------------- | |
2 | |
3 rpng2 - progressive-model PNG display program readpng2.h | |
4 | |
5 --------------------------------------------------------------------------- | |
6 | |
7 Copyright (c) 1998-2008 Greg Roelofs. All rights reserved. | |
8 | |
9 This software is provided "as is," without warranty of any kind, | |
10 express or implied. In no event shall the author or contributors | |
11 be held liable for any damages arising in any way from the use of | |
12 this software. | |
13 | |
14 The contents of this file are DUAL-LICENSED. You may modify and/or | |
15 redistribute this software according to the terms of one of the | |
16 following two licenses (at your option): | |
17 | |
18 | |
19 LICENSE 1 ("BSD-like with advertising clause"): | |
20 | |
21 Permission is granted to anyone to use this software for any purpose, | |
22 including commercial applications, and to alter it and redistribute | |
23 it freely, subject to the following restrictions: | |
24 | |
25 1. Redistributions of source code must retain the above copyright | |
26 notice, disclaimer, and this list of conditions. | |
27 2. Redistributions in binary form must reproduce the above copyright | |
28 notice, disclaimer, and this list of conditions in the documenta- | |
29 tion and/or other materials provided with the distribution. | |
30 3. All advertising materials mentioning features or use of this | |
31 software must display the following acknowledgment: | |
32 | |
33 This product includes software developed by Greg Roelofs | |
34 and contributors for the book, "PNG: The Definitive Guide," | |
35 published by O'Reilly and Associates. | |
36 | |
37 | |
38 LICENSE 2 (GNU GPL v2 or later): | |
39 | |
40 This program is free software; you can redistribute it and/or modify | |
41 it under the terms of the GNU General Public License as published by | |
42 the Free Software Foundation; either version 2 of the License, or | |
43 (at your option) any later version. | |
44 | |
45 This program is distributed in the hope that it will be useful, | |
46 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
47 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
48 GNU General Public License for more details. | |
49 | |
50 You should have received a copy of the GNU General Public License | |
51 along with this program; if not, write to the Free Software Foundation, | |
52 Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
53 | |
54 ---------------------------------------------------------------------------*/ | |
55 | |
56 #ifndef TRUE | |
57 # define TRUE 1 | |
58 # define FALSE 0 | |
59 #endif | |
60 | |
61 #ifndef MAX | |
62 # define MAX(a,b) ((a) > (b)? (a) : (b)) | |
63 # define MIN(a,b) ((a) < (b)? (a) : (b)) | |
64 #endif | |
65 | |
66 #ifdef DEBUG | |
67 # define Trace(x) {fprintf x ; fflush(stderr); fflush(stdout);} | |
68 #else | |
69 # define Trace(x) ; | |
70 #endif | |
71 | |
72 enum rpng2_states { | |
73 kPreInit = 0, | |
74 kWindowInit, | |
75 kDone | |
76 }; | |
77 | |
78 typedef unsigned char uch; | |
79 typedef unsigned short ush; | |
80 typedef unsigned long ulg; | |
81 | |
82 typedef struct _mainprog_info { | |
83 double display_exponent; | |
84 ulg width; | |
85 ulg height; | |
86 void *png_ptr; | |
87 void *info_ptr; | |
88 void (*mainprog_init)(void); | |
89 void (*mainprog_display_row)(ulg row_num); | |
90 void (*mainprog_finish_display)(void); | |
91 uch *image_data; | |
92 uch **row_pointers; | |
93 jmp_buf jmpbuf; | |
94 int passes; /* not used */ | |
95 int pass; | |
96 int rowbytes; | |
97 int channels; | |
98 int need_bgcolor; | |
99 #if (defined(__i386__) || defined(_M_IX86) || defined(__x86_64__)) | |
100 int nommxfilters; | |
101 int nommxcombine; | |
102 int nommxinterlace; | |
103 #endif | |
104 int state; | |
105 uch bg_red; | |
106 uch bg_green; | |
107 uch bg_blue; | |
108 } mainprog_info; | |
109 | |
110 | |
111 /* prototypes for public functions in readpng2.c */ | |
112 | |
113 void readpng2_version_info(void); | |
114 | |
115 int readpng2_check_sig(uch *sig, int num); | |
116 | |
117 int readpng2_init(mainprog_info *mainprog_ptr); | |
118 | |
119 int readpng2_decode_data(mainprog_info *mainprog_ptr, uch *rawbuf, ulg length); | |
120 | |
121 void readpng2_cleanup(mainprog_info *mainprog_ptr); |