properly use stride return for manipulating argb pixels.
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 19 Aug 2010 05:23:39 +0000 (05:23 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 19 Aug 2010 05:23:39 +0000 (05:23 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/expedite@51381 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/bin/image_data_argb.c
src/bin/image_data_argb_alpha.c

index edcffbd..191ba24 100644 (file)
@@ -26,10 +26,10 @@ static void _setup(void)
      {
        o = evas_object_image_add(evas);
        o_images[i] = o;
+        evas_object_image_content_hint_set(o, EVAS_IMAGE_CONTENT_HINT_DYNAMIC);
        evas_object_image_colorspace_set(o, EVAS_COLORSPACE_ARGB8888);
        evas_object_image_size_set(o, 640, 480);
        evas_object_image_alpha_set(o, 0);
-        evas_object_image_content_hint_set(o, EVAS_IMAGE_CONTENT_HINT_DYNAMIC);
        evas_object_image_fill_set(o, 0, 0, 640, 480);
        evas_object_resize(o, 640, 480);
        evas_object_show(o);
@@ -47,7 +47,7 @@ static void _cleanup(void)
 /* loop - do things */
 static void _loop(double t, int f)
 {
-   int i;
+   int i, st;
    Evas_Coord x, y, w, h;
    for (i = 0; i < 1; i++)
      {
@@ -61,6 +61,7 @@ static void _loop(double t, int f)
        evas_object_resize(o_images[i], w, h);
        evas_object_image_fill_set(o_images[i], 0, 0, w, h);
        data = evas_object_image_data_get(o_images[i], 1);
+        st = evas_object_image_stride_get(o_images[i]);
        p = data;
        ff = (f ^ (f << 8) ^ (f << 16) ^ (f << 24));
        for (y = 0; y < 480; y++)
@@ -70,6 +71,7 @@ static void _loop(double t, int f)
                  *p = ((((x * y) + f) << 8) ^ (x - y - f)) | 0xff000000;
                  p++;
               }
+             p += (st - w);
          }
        evas_object_image_data_set(o_images[i], data);
        evas_object_image_data_update_add(o_images[i], 0, 0, 640, 480);
index 2651152..0cdba76 100644 (file)
@@ -26,10 +26,10 @@ static void _setup(void)
      {
        o = evas_object_image_add(evas);
        o_images[i] = o;
+        evas_object_image_content_hint_set(o, EVAS_IMAGE_CONTENT_HINT_DYNAMIC);
         evas_object_image_colorspace_set(o, EVAS_COLORSPACE_ARGB8888);
        evas_object_image_size_set(o, 640, 480);
        evas_object_image_alpha_set(o, 1);
-        evas_object_image_content_hint_set(o, EVAS_IMAGE_CONTENT_HINT_DYNAMIC);
        evas_object_image_fill_set(o, 0, 0, 640, 480);
        evas_object_resize(o, 640, 480);
        evas_object_show(o);
@@ -47,7 +47,7 @@ static void _cleanup(void)
 /* loop - do things */
 static void _loop(double t, int f)
 {
-   int i;
+   int i, st;
    Evas_Coord x, y, w, h;
    for (i = 0; i < 1; i++)
      {
@@ -61,6 +61,7 @@ static void _loop(double t, int f)
        evas_object_resize(o_images[i], w, h);
        evas_object_image_fill_set(o_images[i], 0, 0, w, h);
        data = evas_object_image_data_get(o_images[i], 1);
+        st = evas_object_image_stride_get(o_images[i]);
        p = data;
        ff = (f ^ (f << 8) ^ (f << 16) ^ (f << 24));
        for (y = 0; y < 480; y++)
@@ -81,6 +82,7 @@ static void _loop(double t, int f)
                  *p = (a << 24) | (r << 16) | (g << 8) | b;
                  p++;
               }
+             p += (st - w);
          }
        evas_object_image_data_set(o_images[i], data);
        evas_object_image_data_update_add(o_images[i], 0, 0, 640, 480);