All pastes #612573 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-07-10 14:15 UTC
rendered paste body
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;
 }