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

Reply via email to