im->flags.free_pixels = 0;
im->flags.free_alpha = 0;
+ if (im->stride < 0)
+ im->stride = _calc_stride(w);
/* FIXME: That's bad, the application must be aware of the engine internal. */
im->pixels = (DATA16 *) image_data;
old_im = image;
if ((DATA16 *)image_data == old_im->pixels) return old_im;
- new_im = (Soft16_Image *) evas_cache_image_copied_data(evas_common_soft16_image_cache_get(), old_im->cache_entry.w, old_im->cache_entry.h, image_data, old_im->cache_entry.flags.alpha, EVAS_COLORSPACE_RGB565_A5P);
+ new_im = (Soft16_Image *) evas_cache_image_data(evas_common_soft16_image_cache_get(), old_im->cache_entry.w, old_im->cache_entry.h, image_data, old_im->cache_entry.flags.alpha, EVAS_COLORSPACE_RGB565_A5P);
evas_cache_image_drop(&old_im->cache_entry);
return new_im;
}