Although, ultimately, I would skip event loop altogether and just use manual event loop, since idling in games and stuff is not worth. See more: http://www.pyglet.org/doc/programming_guide/dispatching_events_manually.html
2012/7/24 Peter Enerccio <[email protected]> > Or maybe you can call on_draw() along with flipping display in on_draw, if > you prevent recursion by using some sentinel? > > sentinel = False; > def on_draw(): > .... > if not sentinel: > sentinel = True > on_draw() > flip() > sentinel = False > > > > 2012/7/23 Tristam MacDonald <[email protected]> > >> On Mon, Jul 23, 2012 at 2:42 PM, anatoly techtonik >> <[email protected]>wrote: >> >>> On Mon, Jul 23, 2012 at 9:11 PM, Tristam MacDonald <[email protected]> >>> wrote: >>> > On Mon, Jul 23, 2012 at 1:49 PM, anatoly techtonik < >>> [email protected]> >>> > wrote: >>> >> >>> >> On Mon, Jul 23, 2012 at 8:31 PM, Tristam MacDonald < >>> [email protected]> >>> >> wrote: >>> >> > On Mon, Jul 23, 2012 at 6:46 AM, anatoly techtonik < >>> [email protected]> >>> >> > wrote: >>> >> >> >>> >> >> Hi, >>> >> >> >>> >> >> What is the correct way to initiate window redraw? >>> >> > >>> >> > >>> >> > What's wrong with scheduling an update function? IIRC, that should >>> >> > trigger a >>> >> > redraw whenever it occurs. >>> >> > >>> >> > def update(dt): >>> >> > pass >>> >> > >>> >> > pyglet.clock.schedule_interval(update, 1/60.0) >>> >> >>> >> Thanks. Surprisingly, an empty update() call kicks event loop as >>> >> expected. I want to measure maximum FPS possible on 100% CPU load, so >>> >> a 1/10000 value looks good for my case. But for the clarity I'd still >>> >> prefer to kick event loop explicitly. Unfortunately, Google Code >>> >> Hosting is down at the moment and don't allow me to browse the sources >>> >> to see how is it implemented. >>> >> -- >>> >> anatoly t. >>> > >>> > >>> > Ok, so it's not really possible to do so unless you implement your own >>> event >>> > loop. >>> > >>> > The default event loop redraws every window for which window.invalid >>> == True >>> > (which it is by default), every time through the event loop. >>> > >>> > If you want to redraw as fast as possible, you do exactly as you did >>> > (schedule a high frequency update function), because each time that is >>> > called the event loop is run, and redraw will happen. >>> >>> I'm looking at the pyglet.clock code from >>> pyglet.clock.schedule_intervalpyglet.clock.schedule_interval >>> entrypoint and can't find a place where an event loop iteration is >>> triggered. There is a Clock.call_scheduled_functions, but it is still >>> unclear what causes it to run, how does it interacts with the event >>> loop and how come that the on_draw() is called as a result? >>> >>> http://code.google.com/p/pyglet/source/browse/pyglet/clock.py >> >> >> You need to look at the app classes for each platform - pretty sure that >> hook happens in the app, not the clock. >> >> -- >> Tristam MacDonald >> http://swiftcoder.wordpress.com/ >> >> -- >> You received this message because you are subscribed to the Google Groups >> "pyglet-users" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/pyglet-users?hl=en. >> > > > > -- > Bc. Peter Vaňušanik > http://www.bishojo.tk > > -- Bc. Peter Vaňušanik http://www.bishojo.tk -- You received this message because you are subscribed to the Google Groups "pyglet-users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/pyglet-users?hl=en.
