6
#include <Ecore_Buffer.h>
7
#include <Ecore_Buffer_Queue.h>
16
Evas_Object *bg, *img;
24
paint_pixels(void *image, int padding, int width, int height, uint32_t time)
26
const int halfh = padding + (height - padding * 2) / 2;
27
const int halfw = padding + (width - padding * 2) / 2;
29
uint32_t *pixel = image;
33
or = (halfw < halfh ? halfw : halfh) - 8;
38
pixel += padding * width;
39
for (y = padding; y < height - padding; y++) {
41
int y2 = (y - halfh) * (y - halfh);
44
for (x = padding; x < width - padding; x++) {
48
int r2 = (x - halfw) * (x - halfw) + y2;
51
v = (r2 / 32 + time / 64) * 0x0080401;
53
v = (y + time / 32) * 0x0080401;
55
v = (x + time / 16) * 0x0080401;
67
_cb_post_render(Ecore_Evas *ee EINA_UNUSED)
72
data = ecore_buffer_data_get(win.buffer);
73
paint_pixels(data, 0, WIDTH, HEIGHT, ecore_loop_time_get() * 1000);
74
evas_object_image_data_set(win.img, data);
75
evas_object_image_data_update_add(win.img, 0, 0, WIDTH, HEIGHT);
89
win.ee = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL);
90
win.e = ecore_evas_get(win.ee);
92
o = evas_object_rectangle_add(win.e);
93
evas_object_move(o, 0, 0);
94
evas_object_resize(o, WIDTH, HEIGHT);
95
evas_object_color_set(o, 255, 0, 0, 255);
99
o = evas_object_image_add(win.e);
100
evas_object_image_fill_set(o, 0, 0, WIDTH, HEIGHT);
101
evas_object_image_size_set(o, WIDTH, HEIGHT);
103
evas_object_move(o, 0, 0);
104
evas_object_resize(o, WIDTH, HEIGHT);
109
win.buffer = ecore_buffer_new("shm", WIDTH, HEIGHT, 0, 0);
110
data = ecore_buffer_data_get(win.buffer);
111
paint_pixels(data, 0, WIDTH, HEIGHT, 0);
112
evas_object_image_data_set(win.img, data);
113
evas_object_image_data_update_add(win.img, 0, 0, WIDTH, HEIGHT);
115
ecore_evas_show(win.ee);
117
ecore_evas_callback_post_render_set(win.ee, _cb_post_render);
119
ecore_main_loop_begin();
121
ecore_buffer_free(win.buffer);
122
ecore_buffer_shutdown();
123
ecore_evas_shutdown();