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 [email protected] https://maemo.org/mailman/listinfo/maemo-developers
