fix image_data_put on software 16 bits engine.

SVN revision: 39537
This commit is contained in:
Gustavo Sverzut Barbieri 2009-03-17 20:57:02 +00:00
parent 3ca2a97471
commit 1213744f42
2 changed files with 3 additions and 1 deletions

View File

@ -232,6 +232,8 @@ _evas_common_soft16_image_from_data(Image_Entry* ie_dst, int w, int h, DATA32 *i
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;

View File

@ -610,7 +610,7 @@ eng_image_data_put(void *data __UNUSED__, void *image, DATA32 *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;
}