[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gtk-app-devel
Subject:    Re: I can't understand the difference output of only a line differ
From:       Binary Chen <binary.chen () gmail ! com>
Date:       2007-12-06 23:56:52
Message-ID: 1196985412.5760.9.camel () binch-laptop
[Download RAW message or body]

On Thu, 2007-12-06 at 13:59 +0000, Emmanuele Bassi wrote:
> again: no need to reply to me directly.
> 
> On Thu, 2007-12-06 at 20:29 +0800, Binary Chen wrote:
> 
> >  
> > > what's happening is that you are blocking the main loop from ever
> > > running, so any result you see is an undefined behaviour.
> > > 
> > > for the third time: use a timeout/idle source instead of the while()
> > > loop to hook into the GTK+ main loop.
> 
> > You don't know my situation.
> 
> I read your other emails in this thread and I can say I understood
> fairly well your situation; and yet, you don't seem to understand what
> I'm saying to you: what are you doing leads to undefined behaviours, so
> *don't do it*.
> 
> > I am using gdk_draw_image to draw a GdkImage to the drawing area.
> 
> why are you using a GdkImage in the first place? can't you just use a
> client-side pixbuf and then blit it to the target widget using
> gdk_draw_pixbuf() instead?
> 
> anyway:
> 
> > g_timeout_add is too slow because it need to update the screen  > 20
> > times/sec.
> 
> 20 times per sec is 50 msecs, which is fairly doable for a timeout
> source; you might want to disable the double buffering and set the
> widget you're drawing on as paintable, to squeeze it every millisecond.
> 
> in any case, instead of using a timeout you can use an idle source with
> g_idle_add_full(), and setting a fairly high priority (but probably
> lower than GDK_PRIORITY_REDRAW to avoid useless tearing).
> 
> > So I need to use a FAST blit to screen, which is only possible using
> > busy while...
> 
> there already is a busy loop: it's the GTK+ main loop. you can hook into
> it, but you cannot avoid calling it because (and this is the central
> bit) it leads to undefined behaviours like you witnessed.
> 
> aside from this, I cannot stress enough that it seems to me you don't
> know GTK+ (let alone GDK) well enough. so my recommendation is for you
> to spend some time learning and getting acquainted with how GTK+ works
> first.
Thanks !! I solved this by using g_timeout_add, sorry for my
misunderstanding becoz I vaguely remember g_timeout_add take the
parameter in second precision, wrong.

And another problem is after I set the priority to -90, the window's
close button seems not very responsive, I think the GTK+ is busying
doing the timeout function, so what priority you suggest to use in this
application?

Thanks!
Bin

_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic