]> git.pld-linux.org Git - packages/DirectFB.git/blame - DirectFB-libpng.patch
- release 2
[packages/DirectFB.git] / DirectFB-libpng.patch
CommitLineData
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
This page took 0.109761 seconds and 4 git commands to generate.