rendered paste bodyIndex: 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;
}