diff options
Diffstat (limited to 'package/DirectFB/patches/patch-interfaces_IDirectFBImageProvider_idirectfbimageprovider_png_c')
-rw-r--r-- | package/DirectFB/patches/patch-interfaces_IDirectFBImageProvider_idirectfbimageprovider_png_c | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/package/DirectFB/patches/patch-interfaces_IDirectFBImageProvider_idirectfbimageprovider_png_c b/package/DirectFB/patches/patch-interfaces_IDirectFBImageProvider_idirectfbimageprovider_png_c deleted file mode 100644 index b35c6137e..000000000 --- a/package/DirectFB/patches/patch-interfaces_IDirectFBImageProvider_idirectfbimageprovider_png_c +++ /dev/null @@ -1,138 +0,0 @@ ---- DirectFB-1.4.11.orig/interfaces/IDirectFBImageProvider/idirectfbimageprovider_png.c 2010-10-31 09:49:49.000000000 +0100 -+++ DirectFB-1.4.11/interfaces/IDirectFBImageProvider/idirectfbimageprovider_png.c 2011-03-29 10:57:18.433069010 +0200 -@@ -207,7 +207,7 @@ Construct( IDirectFBImageProvider *thiz, - if (!data->png_ptr) - goto error; - -- if (setjmp( data->png_ptr->jmpbuf )) { -+ if (png_jmpbuf( data->png_ptr )) { - D_ERROR( "ImageProvider/PNG: Error reading header!\n" ); - goto error; - } -@@ -292,7 +292,7 @@ IDirectFBImageProvider_PNG_RenderTo( IDi - rect = dst_data->area.wanted; - } - -- if (setjmp( data->png_ptr->jmpbuf )) { -+ if (png_jmpbuf( data->png_ptr )) { - D_ERROR( "ImageProvider/PNG: Error during decoding!\n" ); - - if (data->stage < STAGE_IMAGE) -@@ -327,6 +327,7 @@ IDirectFBImageProvider_PNG_RenderTo( IDi - } - else { - CoreSurfaceBufferLock lock; -+ png_byte bit_depth = png_get_bit_depth( data->png_ptr, data->info_ptr ); - - ret = dfb_surface_lock_buffer( dst_surface, CSBR_BACK, CSAID_CPU, CSAF_WRITE, &lock ); - if (ret) -@@ -334,7 +335,7 @@ IDirectFBImageProvider_PNG_RenderTo( IDi - - switch (data->color_type) { - case PNG_COLOR_TYPE_PALETTE: -- if (dst_surface->config.format == DSPF_LUT8 && data->info_ptr->bit_depth == 8) { -+ if (dst_surface->config.format == DSPF_LUT8 && bit_depth == 8) { - /* - * Special indexed PNG to LUT8 loading. - */ -@@ -377,7 +378,7 @@ IDirectFBImageProvider_PNG_RenderTo( IDi - } - else { - if (data->color_type == PNG_COLOR_TYPE_GRAY) { -- int num = 1 << data->info_ptr->bit_depth; -+ int num = 1 << bit_depth; - - for (x=0; x<num; x++) { - int value = x * 255 / (num - 1); -@@ -386,7 +387,7 @@ IDirectFBImageProvider_PNG_RenderTo( IDi - } - } - -- switch (data->info_ptr->bit_depth) { -+ switch (bit_depth) { - case 8: - for (y=0; y<data->height; y++) { - u8 *S = data->image + data->pitch * y; -@@ -441,7 +442,7 @@ IDirectFBImageProvider_PNG_RenderTo( IDi - - default: - D_ERROR( "ImageProvider/PNG: Unsupported indexed bit depth %d!\n", -- data->info_ptr->bit_depth ); -+ bit_depth ); - } - - dfb_scale_linear_32( image_argb, data->width, data->height, -@@ -594,16 +595,26 @@ png_info_callback( png_structp png_read_ - NULL, NULL, NULL ); - - if (png_get_valid( data->png_ptr, data->info_ptr, PNG_INFO_tRNS )) { -+ png_bytep trans; -+ png_color_16p trans_color; -+ int num_trans; -+ -+ png_get_tRNS( data->png_ptr, data->info_ptr, &trans, &num_trans, &trans_color ); -+ - data->color_keyed = true; - - /* generate color key based on palette... */ - if (data->color_type == PNG_COLOR_TYPE_PALETTE) { - u32 key; -- png_colorp palette = data->info_ptr->palette; -- png_bytep trans = data->info_ptr->trans_alpha; -- int num_colors = MIN( MAXCOLORMAPSIZE, -- data->info_ptr->num_palette ); -- u8 cmap[3][num_colors]; -+ png_colorp palette; -+ int num_colors; -+ u8 *cmap[3]; -+ -+ png_get_PLTE( data->png_ptr, data->info_ptr, &palette, &num_colors ); -+ num_colors = MIN( MAXCOLORMAPSIZE, num_colors ); -+ cmap[0] = alloca (num_colors); -+ cmap[1] = alloca (num_colors); -+ cmap[2] = alloca (num_colors); - - for (i=0; i<num_colors; i++) { - cmap[0][i] = palette[i].red; -@@ -613,7 +624,7 @@ png_info_callback( png_structp png_read_ - - key = FindColorKey( num_colors, &cmap[0][0] ); - -- for (i=0; i<data->info_ptr->num_trans; i++) { -+ for (i=0; i<num_trans; i++) { - if (!trans[i]) { - palette[i].red = (key & 0xff0000) >> 16; - palette[i].green = (key & 0x00ff00) >> 8; -@@ -625,20 +636,23 @@ png_info_callback( png_structp png_read_ - } - else { - /* ...or based on trans rgb value */ -- png_color_16p trans = &data->info_ptr->trans_color; -- -- data->color_key = (((trans->red & 0xff00) << 8) | -- ((trans->green & 0xff00)) | -- ((trans->blue & 0xff00) >> 8)); -+ data->color_key = (((trans_color->red & 0xff00) << 8) | -+ ((trans_color->green & 0xff00)) | -+ ((trans_color->blue & 0xff00) >> 8)); - } - } - - switch (data->color_type) { - case PNG_COLOR_TYPE_PALETTE: { -- png_colorp palette = data->info_ptr->palette; -- png_bytep trans = data->info_ptr->trans_alpha; -- int num_trans = data->info_ptr->num_trans; -- int num_colors = MIN( MAXCOLORMAPSIZE, data->info_ptr->num_palette ); -+ png_colorp palette; -+ png_bytep trans; -+ png_color_16p trans_color; -+ int num_trans; -+ int num_colors; -+ -+ png_get_PLTE( data->png_ptr, data->info_ptr, &palette, &num_colors ); -+ num_colors = MIN( MAXCOLORMAPSIZE, num_colors ); -+ png_get_tRNS( data->png_ptr, data->info_ptr, &trans, &num_trans, &trans_color ); - - for (i=0; i<num_colors; i++) { - data->colors[i].a = (i < num_trans) ? trans[i] : 0xff; |