Index: src/modules/engines/software_16/evas_engine.c =================================================================== RCS file: /var/cvs/e/e17/libs/evas/src/modules/engines/software_16/evas_engine.c,v retrieving revision 1.4 diff -u -r1.4 evas_engine.c --- src/modules/engines/software_16/evas_engine.c 19 Jun 2007 22:52:12 -0000 1.4 +++ src/modules/engines/software_16/evas_engine.c 10 Jul 2007 14:14:38 -0000 @@ -431,8 +431,31 @@ static void * eng_image_data_get(void *data, void *image, int to_write, DATA32 **image_data) { - // FIXME: implement - *image_data = NULL; + Soft16_Image *im; + + if (!image) + { + *image_data = NULL; + return NULL; + } + + im = (Soft16_Image *) image; + + if (to_write) + { + if (im->references > 1) + { + Soft16_Image *im_new; + + im_new = soft16_image_new(im->w, im->h, im->stride, im->have_alpha, im->pixels, 1); + if (!im_new) return im; + soft16_image_free(im); + im = im_new; + } + } + + if (image_data) *image_data = (DATA32 *) im->pixels; + return image; }