Signed-off-by: Mike Frysinger <vap...@gentoo.org> --- tools/directfb-csource.c | 20 +++++++++++++------- tools/mkdfiff.c | 2 +- tools/mkdgifft.cpp | 2 +- 3 files changed, 15 insertions(+), 9 deletions(-)
diff --git a/tools/directfb-csource.c b/tools/directfb-csource.c index 8f2cbf0..487ea3c 100644 --- a/tools/directfb-csource.c +++ b/tools/directfb-csource.c @@ -338,7 +338,7 @@ static DFBResult load_image (const char *filename, if (!png_ptr) goto cleanup; - if (setjmp (png_ptr->jmpbuf)) { + if (setjmp (png_jmpbuf (png_ptr))) { if (desc->preallocated[0].data) { free (desc->preallocated[0].data); desc->preallocated[0].data = NULL; @@ -405,17 +405,22 @@ static DFBResult load_image (const char *filename, } switch (src_format) { - case DSPF_LUT8: - if (info_ptr->num_palette) { + case DSPF_LUT8: { + png_colorp png_palette; + int num_palette; + + png_get_PLTE( png_ptr, info_ptr, &png_palette, &num_palette ); + + if (num_palette) { png_byte *alpha; int i, num; - *palette_size = MIN (info_ptr->num_palette, 256); + *palette_size = MIN (num_palette, 256); for (i = 0; i < *palette_size; i++) { palette[i].a = 0xFF; - palette[i].r = info_ptr->palette[i].red; - palette[i].g = info_ptr->palette[i].green; - palette[i].b = info_ptr->palette[i].blue; + palette[i].r = png_palette[i].red; + palette[i].g = png_palette[i].green; + palette[i].b = png_palette[i].blue; } if (png_get_valid (png_ptr, info_ptr, PNG_INFO_tRNS)) { png_get_tRNS (png_ptr, info_ptr, &alpha, &num, NULL); @@ -424,6 +429,7 @@ static DFBResult load_image (const char *filename, } } break; + } case DSPF_RGB32: png_set_filler (png_ptr, 0xFF, #ifdef WORDS_BIGENDIAN diff --git a/tools/mkdfiff.c b/tools/mkdfiff.c index 68a3b4f..edb58a7 100644 --- a/tools/mkdfiff.c +++ b/tools/mkdfiff.c @@ -97,7 +97,7 @@ load_image (const char *filename, if (!png_ptr) goto cleanup; - if (setjmp (png_ptr->jmpbuf)) { + if (setjmp (png_jmpbuf (png_ptr))) { if (desc->preallocated[0].data) { free (desc->preallocated[0].data); desc->preallocated[0].data = NULL; diff --git a/tools/mkdgifft.cpp b/tools/mkdgifft.cpp index 96e4220..d4b6bf4 100644 --- a/tools/mkdgifft.cpp +++ b/tools/mkdgifft.cpp @@ -595,7 +595,7 @@ load_image (const char *filename, if (!png_ptr) goto cleanup; - if (setjmp (png_ptr->jmpbuf)) { + if (setjmp (png_jmpbuf (png_ptr))) { if (desc->preallocated[0].data) { free (desc->preallocated[0].data); desc->preallocated[0].data = NULL; -- 1.7.4.1 _______________________________________________ directfb-dev mailing list directfb-dev@directfb.org http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev