]> git.pld-linux.org Git - packages/DirectFB.git/blob - DirectFB-libpng.patch
- release 2
[packages/DirectFB.git] / DirectFB-libpng.patch
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.040542 seconds and 3 git commands to generate.