Alexandre wrote:
>   Hi,
> 
>   I creating something like a osciloscope, with gtk on Linux.
>   I've created a plotting widget to plot the data collected. So, I have to 
> redraw this plotting widget very quickly to show the data (witch changes very 
> quickly).
>   There is one thread (separeted form the main thread) wich do the data 
> acquisition, and then call gtk_widget_queue_draw(xyplot) to redraw the 
> widget. 
>   But there is one problem, sometimes, when I call this function the widget 
> is not redrawn.. I think the main loop doesn't process it. So is there a way 
> that I can be sure that I'm redrawing the widget? and do it in a very high 
> frequency?
> 

I doubt that you need your data to be rendered faster than the eye can see,
in which case, the general gtk+ double-buffered rendering techniques should
be adequate for your application.

When you call gtk_widget_queue_draw(), you are enqueueing a "draw" request
in the event queue - assuming that you dont do anything blocking in your
code and always return quickly from your callbacks - you wont have any
"unresponsiveness" or drawing latency (except under heavy system loads
ofcourse).

So I think that:

     a.) you should ensure that there are no lengthly calculations or
         blocking operations in your code (i.e. make sure you are not
         hijacking the main loop, always return to it).
     b.) if you really need better animated performance - you can look into
         disabling double-buffering for your widget, this can be a little
         complex (I cant give you all the details 'cause I'd have to
         research them myself :-P )

Cheers,
                   -Tristan
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to