# HG changeset patch # User Tero Marttila # Date 1264377805 -7200 # Node ID 31650ef395d3d27fd6ccf071da4f200d18e6b584 # Parent cb6407844ab587c7d67cf0ee6f66ab042d8bb127 use pt_png_decode_direct if no background color is set.. diff -r cb6407844ab5 -r 31650ef395d3 src/lib/png.c --- a/src/lib/png.c Mon Jan 25 02:00:14 2010 +0200 +++ b/src/lib/png.c Mon Jan 25 02:03:25 2010 +0200 @@ -111,7 +111,7 @@ /** * Decode the PNG data directly to memory - not good for sparse backgrounds */ -static int pt_png_decode_raw (struct pt_png_img *img, const struct pt_png_header *header, const struct pt_image_params *params, uint8_t *out) +static int pt_png_decode_direct (struct pt_png_img *img, const struct pt_png_header *header, const struct pt_image_params *params, uint8_t *out) { // write out raw image data a row at a time for (size_t row = 0; row < header->height; row++) { @@ -180,7 +180,14 @@ { int err; - if ((err = pt_png_decode_sparse(img, header, params, out))) + // decode + if (params->background_color) + err = pt_png_decode_sparse(img, header, params, out); + + else + err = pt_png_decode_direct(img, header, params, out); + + if (err) return err; // finish off, ignore trailing data @@ -363,7 +370,8 @@ // set palette? if (header->color_type == PNG_COLOR_TYPE_PALETTE) - png_set_PLTE(img->png, img->info, header->palette, header->num_palette); + // oops... missing const + png_set_PLTE(img->png, img->info, (png_colorp) header->palette, header->num_palette); // write meta-info png_write_info(img->png, img->info);