properly use stride return for manipulating argb pixels.

SVN revision: 51381
This commit is contained in:
Carsten Haitzler 2010-08-19 05:23:39 +00:00
parent d54129448a
commit 5e1a73b0b3
2 changed files with 8 additions and 4 deletions

View 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);

View 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);