]>
Commit | Line | Data |
---|---|---|
792eb3b9 JB |
1 | --- DirectFB-1.4.15/tools/directfb-csource.c.orig 2011-09-29 11:51:21.000000000 +0200 |
2 | +++ DirectFB-1.4.15/tools/directfb-csource.c 2011-12-31 11:45:40.123082173 +0100 | |
3 | @@ -338,7 +338,7 @@ | |
4 | if (!png_ptr) | |
5 | goto cleanup; | |
6 | ||
7 | - if (setjmp (png_ptr->jmpbuf)) { | |
8 | + if (setjmp (png_jmpbuf(png_ptr))) { | |
9 | if (desc->preallocated[0].data) { | |
10 | free (desc->preallocated[0].data); | |
11 | desc->preallocated[0].data = NULL; | |
12 | @@ -406,16 +406,19 @@ | |
13 | ||
14 | switch (src_format) { | |
15 | case DSPF_LUT8: | |
16 | - if (info_ptr->num_palette) { | |
17 | + { | |
18 | + png_colorp png_palette; | |
19 | + int num_palette; | |
20 | + if (png_get_PLTE(png_ptr, info_ptr, &png_palette, &num_palette) && (num_palette > 0)) { | |
21 | png_byte *alpha; | |
22 | int i, num; | |
23 | ||
24 | - *palette_size = MIN (info_ptr->num_palette, 256); | |
25 | + *palette_size = MIN (num_palette, 256); | |
26 | for (i = 0; i < *palette_size; i++) { | |
27 | palette[i].a = 0xFF; | |
28 | - palette[i].r = info_ptr->palette[i].red; | |
29 | - palette[i].g = info_ptr->palette[i].green; | |
30 | - palette[i].b = info_ptr->palette[i].blue; | |
31 | + palette[i].r = png_palette[i].red; | |
32 | + palette[i].g = png_palette[i].green; | |
33 | + palette[i].b = png_palette[i].blue; | |
34 | } | |
35 | if (png_get_valid (png_ptr, info_ptr, PNG_INFO_tRNS)) { | |
36 | png_get_tRNS (png_ptr, info_ptr, &alpha, &num, NULL); | |
37 | @@ -423,6 +426,7 @@ | |
38 | palette[i].a = alpha[i]; | |
39 | } | |
40 | } | |
41 | + } | |
42 | break; | |
43 | case DSPF_RGB32: | |
44 | png_set_filler (png_ptr, 0xFF, | |
45 | --- DirectFB-1.4.15/tools/mkdfiff.c.orig 2011-09-29 11:51:21.000000000 +0200 | |
46 | +++ DirectFB-1.4.15/tools/mkdfiff.c 2011-12-31 11:54:59.336434230 +0100 | |
47 | @@ -97,7 +97,7 @@ | |
48 | if (!png_ptr) | |
49 | goto cleanup; | |
50 | ||
51 | - if (setjmp (png_ptr->jmpbuf)) { | |
52 | + if (setjmp (png_jmpbuf(png_ptr))) { | |
53 | if (desc->preallocated[0].data) { | |
54 | free (desc->preallocated[0].data); | |
55 | desc->preallocated[0].data = NULL; | |
56 | --- DirectFB-1.4.15/tools/mkdgifft.cpp.orig 2011-09-29 11:51:21.000000000 +0200 | |
57 | +++ DirectFB-1.4.15/tools/mkdgifft.cpp 2011-12-31 12:04:10.586452688 +0100 | |
58 | @@ -595,7 +595,7 @@ | |
59 | if (!png_ptr) | |
60 | goto cleanup; | |
61 | ||
62 | - if (setjmp (png_ptr->jmpbuf)) { | |
63 | + if (setjmp (png_jmpbuf(png_ptr))) { | |
64 | if (desc->preallocated[0].data) { | |
65 | free (desc->preallocated[0].data); | |
66 | desc->preallocated[0].data = NULL; | |
67 | --- DirectFB-1.4.15/interfaces/IDirectFBImageProvider/idirectfbimageprovider_png.c.orig 2011-09-29 11:51:21.000000000 +0200 | |
68 | +++ DirectFB-1.4.15/interfaces/IDirectFBImageProvider/idirectfbimageprovider_png.c 2011-12-31 13:45:31.339989628 +0100 | |
69 | @@ -209,7 +209,7 @@ | |
70 | if (!data->png_ptr) | |
71 | goto error; | |
72 | ||
73 | - if (setjmp( data->png_ptr->jmpbuf )) { | |
74 | + if (setjmp( png_jmpbuf(data->png_ptr) )) { | |
75 | D_ERROR( "ImageProvider/PNG: Error reading header!\n" ); | |
76 | goto error; | |
77 | } | |
78 | @@ -294,7 +294,7 @@ | |
79 | rect = dst_data->area.wanted; | |
80 | } | |
81 | ||
82 | - if (setjmp( data->png_ptr->jmpbuf )) { | |
83 | + if (setjmp( png_jmpbuf(data->png_ptr) )) { | |
84 | D_ERROR( "ImageProvider/PNG: Error during decoding!\n" ); | |
85 | ||
86 | if (data->stage < STAGE_IMAGE) | |
87 | @@ -337,7 +337,7 @@ | |
88 | ||
89 | switch (data->color_type) { | |
90 | case PNG_COLOR_TYPE_PALETTE: | |
91 | - if (dst_surface->config.format == DSPF_LUT8 && data->info_ptr->bit_depth == 8) { | |
92 | + if (dst_surface->config.format == DSPF_LUT8 && png_get_bit_depth(data->png_ptr, data->info_ptr) == 8) { | |
93 | /* | |
94 | * Special indexed PNG to LUT8 loading. | |
95 | */ | |
96 | @@ -390,7 +390,7 @@ | |
97 | } | |
98 | else { | |
99 | if (data->color_type == PNG_COLOR_TYPE_GRAY) { | |
100 | - int num = 1 << data->info_ptr->bit_depth; | |
101 | + int num = 1 << png_get_bit_depth(data->png_ptr, data->info_ptr); | |
102 | ||
103 | for (x=0; x<num; x++) { | |
104 | int value = x * 255 / (num - 1); | |
105 | @@ -399,7 +399,7 @@ | |
106 | } | |
107 | } | |
108 | ||
109 | - switch (data->info_ptr->bit_depth) { | |
110 | + switch (png_get_bit_depth(data->png_ptr, data->info_ptr)) { | |
111 | case 8: | |
112 | for (y=0; y<data->height; y++) { | |
113 | u8 *S = data->image + data->pitch * y; | |
114 | @@ -454,7 +454,7 @@ | |
115 | ||
116 | default: | |
117 | D_ERROR( "ImageProvider/PNG: Unsupported indexed bit depth %d!\n", | |
118 | - data->info_ptr->bit_depth ); | |
119 | + png_get_bit_depth(data->png_ptr, data->info_ptr) ); | |
120 | } | |
121 | ||
122 | dfb_scale_linear_32( image_argb, data->width, data->height, | |
123 | @@ -616,12 +616,16 @@ | |
124 | /* generate color key based on palette... */ | |
125 | if (data->color_type == PNG_COLOR_TYPE_PALETTE) { | |
126 | u32 key; | |
127 | - png_colorp palette = data->info_ptr->palette; | |
128 | - png_bytep trans = data->info_ptr->trans_alpha; | |
129 | - int num_colors = MIN( MAXCOLORMAPSIZE, | |
130 | - data->info_ptr->num_palette ); | |
131 | - u8 cmap[3][num_colors]; | |
132 | - | |
133 | + png_colorp palette; | |
134 | + png_bytep trans; | |
135 | + png_color_16p trans_color; | |
136 | + int num_palette, num_colors, num_trans; | |
137 | + | |
138 | + png_get_PLTE(data->png_ptr, data->info_ptr, &palette, &num_palette); | |
139 | + png_get_tRNS(data->png_ptr, data->info_ptr, &trans, &num_trans, &trans_color); | |
140 | + num_colors = MIN (MAXCOLORMAPSIZE, num_palette); | |
141 | + { | |
142 | + u8 cmap[3][num_colors]; | |
143 | for (i=0; i<num_colors; i++) { | |
144 | cmap[0][i] = palette[i].red; | |
145 | cmap[1][i] = palette[i].green; | |
146 | @@ -629,8 +633,9 @@ | |
147 | } | |
148 | ||
149 | key = FindColorKey( num_colors, &cmap[0][0] ); | |
150 | + } | |
151 | ||
152 | - for (i=0; i<data->info_ptr->num_trans; i++) { | |
153 | + for (i=0; i<num_trans; i++) { | |
154 | if (!trans[i]) { | |
155 | palette[i].red = (key & 0xff0000) >> 16; | |
156 | palette[i].green = (key & 0x00ff00) >> 8; | |
157 | @@ -642,7 +647,10 @@ | |
158 | } | |
159 | else if (data->color_type == PNG_COLOR_TYPE_GRAY) { | |
160 | /* ...or based on trans gray value */ | |
161 | - png_color_16p trans = &data->info_ptr->trans_color; | |
162 | + png_bytep trans_alpha; | |
163 | + png_color_16p trans; | |
164 | + int num_trans; | |
165 | + png_get_tRNS(data->png_ptr, data->info_ptr, &trans_alpha, &num_trans, &trans); | |
166 | ||
167 | switch(data->bpp) { | |
168 | case 1: | |
169 | @@ -675,7 +683,10 @@ | |
170 | } | |
171 | else { | |
172 | /* ...or based on trans rgb value */ | |
173 | - png_color_16p trans = &data->info_ptr->trans_color; | |
174 | + png_bytep trans_alpha; | |
175 | + png_color_16p trans; | |
176 | + int num_trans; | |
177 | + png_get_tRNS(data->png_ptr, data->info_ptr, &trans_alpha, &num_trans, &trans); | |
178 | ||
179 | switch(data->bpp) { | |
180 | case 1: | |
181 | @@ -710,10 +721,14 @@ | |
182 | ||
183 | switch (data->color_type) { | |
184 | case PNG_COLOR_TYPE_PALETTE: { | |
185 | - png_colorp palette = data->info_ptr->palette; | |
186 | - png_bytep trans = data->info_ptr->trans_alpha; | |
187 | - int num_trans = data->info_ptr->num_trans; | |
188 | - int num_colors = MIN( MAXCOLORMAPSIZE, data->info_ptr->num_palette ); | |
189 | + png_colorp palette; | |
190 | + png_bytep trans; | |
191 | + png_color_16p trans_color; | |
192 | + int num_trans, num_palette, num_colors; | |
193 | + | |
194 | + png_get_PLTE(data->png_ptr, data->info_ptr, &palette, &num_palette); | |
195 | + png_get_tRNS(data->png_ptr, data->info_ptr, &trans, &num_trans, &trans_color); | |
196 | + num_colors = MIN( MAXCOLORMAPSIZE, num_palette ); | |
197 | ||
198 | for (i=0; i<num_colors; i++) { | |
199 | data->colors[i].a = (i < num_trans) ? trans[i] : 0xff; | |
200 | @@ -847,7 +862,10 @@ | |
201 | } | |
202 | } | |
203 | ||
204 | - png_color_16p trans = &data->info_ptr->trans_color; | |
205 | + int num_trans; | |
206 | + png_bytep trans_alpha; | |
207 | + png_color_16p trans; | |
208 | + png_get_tRNS(data->png_ptr, data->info_ptr, &trans_alpha, &num_trans, &trans); | |
209 | u16 *src16 = (u16*)src + src16_initial_offset; | |
210 | u32 *dst32 = (u32*)dst + dst32_initial_offset; | |
211 |