static bool nspng_convert(struct content *c) { nspng_content *png_c = (nspng_content *) c; char *title; assert(png_c->png != NULL); assert(png_c->info != NULL); /* clean up png structures */ png_destroy_read_struct(&png_c->png, &png_c->info, 0); /* set title text */ title = messages_get_buff("PNGTitle", nsurl_access_leaf(llcache_handle_get_url(c->llcache)), c->width, c->height); if (title != NULL) { content__set_title(c, title); free(title); } if (png_c->bitmap != NULL) { bitmap_set_opaque(png_c->bitmap, bitmap_test_opaque(png_c->bitmap)); bitmap_modified(png_c->bitmap); } image_cache_add(c, png_c->bitmap, png_cache_convert); content_set_ready(c); content_set_done(c); content_set_status(c, ""); return true; }
static struct bitmap *amiga_dt_picture_cache_convert(struct content *c) { LOG(("amiga_dt_picture_cache_convert")); union content_msg_data msg_data; UBYTE *bm_buffer; Object *dto; struct bitmap *bitmap; unsigned int bm_flags = BITMAP_NEW; #ifdef __amigaos4__ int bm_format = PBPAFMT_RGBA; #else int bm_format = PBPAFMT_ARGB; #endif struct amiga_dt_picture_content *adt = (struct amiga_dt_picture_content *)c; if(dto = amiga_dt_picture_newdtobject(adt)) { bitmap = bitmap_create(c->width, c->height, bm_flags); if (!bitmap) { msg_data.error = messages_get("NoMemory"); content_broadcast(c, CONTENT_MSG_ERROR, msg_data); return NULL; } bm_buffer = bitmap_get_buffer(bitmap); IDoMethod(dto, PDTM_READPIXELARRAY, bm_buffer, bm_format, bitmap_get_rowstride(bitmap), 0, 0, c->width, c->height); #ifndef __amigaos4__ ami_bitmap_argb_to_rgba(bitmap); #endif bitmap_set_opaque(bitmap, bitmap_test_opaque(bitmap)); DisposeDTObject(dto); adt->dto = NULL; } else return NULL; return bitmap; }