Hello list,
I develop a multi-threaded program.
One thread receives some bitmaps (in BUFFER_FILE file) and send an ecore_event.
imlib_save_image(TEMP_BUFFER_FILE);
//Envoi signal pour rafraichir la fenetre evas event = ecore_event_add(MY_EVENT_TYPE, toto, NULL, NULL);if(!event){exit(
0);}
This event is handled by the second thread in order to display them on a evas canvas (which is defined in the second thread).
//Handler creation
MY_EVENT_TYPE = ecore_event_type_new();
handler = ecore_event_handler_add(MY_EVENT_TYPE, callback_resfresh, NULL);
if(!handler){exit(0);}
int callback_resfresh(void *data, int type, void
*ev)
{
refresh();
return 1;
}
Here is below the function for refreshing the canvas (function defined in the second thread) :
void refresh(void)
{
if(tmp){evas_object_del(tmp);}
tmp = evas_object_image_add(evas);
evas_image_cache_flush(evas);
evas_image_cache_reload (evas);
evas_object_image_file_set(tmp, TEMP_BUFFER_FILE, NULL);
evas_object_move(tmp, 0, 0);
evas_object_resize(tmp, win_w, win_h);
evas_object_image_fill_set(tmp, 0, 0, win_w, win_h);
evas_object_layer_set(tmp,50);
evas_object_show(tmp);
//evas_render(evas);
}
In a Linux PC environment, this program works well : the canvas is refreshed every time a bitmap is received.
But when this program is launched on a Nokia 770 with MAEMO 2.0, the
canvas is only refreshed when the screen is touched by the pencil. I
don't understand why the screen is refreshed only when I touch it.
I am running this program under X, and I disabled evas acceleration so that evas doesn't use the framebuffer.
If some of you have an idea to solve this problem, thanks a lot for your response.
Seb Dev
___
maemo-developers mailing list
maemo-developers@maemo.org
https://maemo.org/mailman/listinfo/maemo-developers