Author: Konstantin Dmitriev <[email protected]>
Date: Sun Oct 30 21:33:52 2011 +0700
Fix for compatibility with libpng 1.5. Patch #3427945 by SpeckFleck.
---
synfig-core/src/modules/mod_png/mptr_png.cpp | 19 ++++++++++++++-----
synfig-core/src/modules/mod_png/trgt_png.cpp | 4 ++--
2 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/synfig-core/src/modules/mod_png/mptr_png.cpp
b/synfig-core/src/modules/mod_png/mptr_png.cpp
index a436d50..d5dd3be 100644
--- a/synfig-core/src/modules/mod_png/mptr_png.cpp
+++ b/synfig-core/src/modules/mod_png/mptr_png.cpp
@@ -304,12 +304,21 @@ png_mptr::png_mptr(const char *file_name)
for(y=0;y<height;y++)
for(x=0;x<width;x++)
{
- float r=gamma().r_U8_to_F32((unsigned
char)png_ptr->palette[row_pointers[y][x]].red);
- float g=gamma().g_U8_to_F32((unsigned
char)png_ptr->palette[row_pointers[y][x]].green);
- float b=gamma().b_U8_to_F32((unsigned
char)png_ptr->palette[row_pointers[y][x]].blue);
+ png_colorp palette;
+ int num_palette;
+ png_get_PLTE(png_ptr, info_ptr, &palette,
&num_palette);
+ float r=gamma().r_U8_to_F32((unsigned
char)palette[row_pointers[y][x]].red);
+ float g=gamma().g_U8_to_F32((unsigned
char)palette[row_pointers[y][x]].green);
+ float b=gamma().b_U8_to_F32((unsigned
char)palette[row_pointers[y][x]].blue);
float a=1.0;
- if(info_ptr->valid & PNG_INFO_tRNS)
- a = (float)(unsigned
char)png_ptr->trans[row_pointers[y][x]]*(1.0/255.0);
+ if(png_get_valid(png_ptr, info_ptr,
PNG_INFO_tRNS))
+ {
+ png_bytep trans_alpha;
+ int num_trans;
+ png_color_16p trans_color;
+ png_get_tRNS(png_ptr, info_ptr,
&trans_alpha, &num_trans, &trans_color);
+ a = (float)(unsigned
char)trans_alpha[row_pointers[y][x]]*(1.0/255.0);
+ }
surface_buffer[y][x]=Color(
r,
g,
diff --git a/synfig-core/src/modules/mod_png/trgt_png.cpp
b/synfig-core/src/modules/mod_png/trgt_png.cpp
index c4d4df4..853a651 100644
--- a/synfig-core/src/modules/mod_png/trgt_png.cpp
+++ b/synfig-core/src/modules/mod_png/trgt_png.cpp
@@ -61,7 +61,7 @@ SYNFIG_TARGET_SET_CVS_ID(png_trgt,"$Id$");
void
png_trgt::png_out_error(png_struct *png_data,const char *msg)
{
- png_trgt *me=(png_trgt*)png_data->error_ptr;
+ png_trgt *me=(png_trgt*)png_get_error_ptr(png_data);
synfig::error(strprintf("png_trgt: error: %s",msg));
me->ready=false;
}
@@ -69,7 +69,7 @@ png_trgt::png_out_error(png_struct *png_data,const char *msg)
void
png_trgt::png_out_warning(png_struct *png_data,const char *msg)
{
- png_trgt *me=(png_trgt*)png_data->error_ptr;
+ png_trgt *me=(png_trgt*)png_get_error_ptr(png_data);
synfig::warning(strprintf("png_trgt: warning: %s",msg));
me->ready=false;
}
------------------------------------------------------------------------------
Get your Android app more play: Bring it to the BlackBerry PlayBook
in minutes. BlackBerry App World™ now supports Android™ Apps
for the BlackBerry® PlayBook™. Discover just how easy and simple
it is! http://p.sf.net/sfu/android-dev2dev
_______________________________________________
Synfig-devl mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/synfig-devl