I'm afraid that without window.flip() may break pyglet on other platforms with pyglet.gl.Config(double_buffer=False). Does it work the same way for Linux? I think that for the proper test another label should be drawn after the "After." string is printed.
On Thursday, December 27, 2012 8:44:12 PM UTC+3, Anonymouse wrote: > > I'm on linux (ubuntu 12.10). Maybe try adding a window.flip() after > label.draw()? > > On 24 December 2012 23:09, anatoly techtonik <[email protected]<javascript:> > > wrote: > >> Exactly. It draws only after "After." is displayed and I press Enter. >> Are you on a Windows Vista too? >> >> >> On Tue, Dec 25, 2012 at 12:56 AM, Anonymouse >> <[email protected]<javascript:> >> > wrote: >> >>> You mean it doesn't draw after you press enter for the first time? >>> Because it does for me. >>> >>> >>> On 24 December 2012 22:28, anatoly techtonik <[email protected]<javascript:> >>> > wrote: >>> >>>> Doesn't help. Here is the script with added event logger for the >>>> window. On my machine the output is: >>>> >>>> >py testdraw.py >>>> on_activate() >>>> on_show() >>>> on_resize(width=640, height=480) >>>> on_expose() >>>> Before Label draw. >>>> on_deactivate() >>>> After. >>>> Done. >>>> >>>> >>>> >>>> import pyglet >>>> >>>> wincfg = pyglet.gl.Config(double_buffer=False) >>>> window = pyglet.window.Window(config=wincfg) >>>> window.push_handlers(pyglet.window.event.WindowEventLogger()) >>>> window.dispatch_events() >>>> >>>> raw_input("Before Label draw.") >>>> >>>> label = pyglet.text.Label('[]', >>>> font_name='Lucida Console', >>>> font_size=14, >>>> x=10, y=10) >>>> label.draw() >>>> pyglet.gl.glFlush() >>>> window.dispatch_events() >>>> >>>> raw_input("After.") >>>> >>>> label.draw() >>>> pyglet.gl.glFlush() >>>> window.dispatch_events() >>>> >>>> raw_input("Done.") >>>> >>>> >>>> On Tue, Dec 25, 2012 at 12:06 AM, Anonymouse >>>> <[email protected]<javascript:> >>>> > wrote: >>>> >>>>> I can't be sure, but I think it's because you need to >>>>> dispatch_events() once before drawing anything so that an on_resize event >>>>> gets handled, which will set the projection matrix for the window. If you >>>>> draw before it, the projection matrix is probably such that you can't see >>>>> wherever the text gets drawn. So call window.dispatch_events() once >>>>> before >>>>> drawing and it does display. >>>>> >>>>> >>>>> On 24 December 2012 16:30, anatoly techtonik >>>>> <[email protected]<javascript:> >>>>> > wrote: >>>>> >>>>>> Why pyglet doesn't display label on the first iteration? >>>>>> On my Vista machine it is visible only after I hit Enter the second >>>>>> time. >>>>>> >>>>>> import pyglet >>>>>> >>>>>> wincfg = pyglet.gl.Config(double_buffer=False) >>>>>> window = pyglet.window.Window(config=wincfg) >>>>>> >>>>>> label = pyglet.text.Label('[]', >>>>>> font_name='Lucida Console', >>>>>> font_size=14, >>>>>> x=10, y=10) >>>>>> label.draw() >>>>>> pyglet.gl.glFlush() >>>>>> window.dispatch_events() >>>>>> >>>>>> raw_input("Done.") >>>>>> >>>>>> label.draw() >>>>>> pyglet.gl.glFlush() >>>>>> window.dispatch_events() >>>>>> >>>>>> raw_input("Done.") >>>>>> >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "pyglet-users" group. >>>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msg/pyglet-users/-/Tr5ouPliAKMJ. >>>>>> To post to this group, send email to >>>>>> [email protected]<javascript:> >>>>>> . >>>>>> To unsubscribe from this group, send email to >>>>>> [email protected] <javascript:>. >>>>>> For more options, visit this group at >>>>>> http://groups.google.com/group/pyglet-users?hl=en. >>>>>> >>>>> >>>>> -- >>>>> 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]<javascript:> >>>>> . >>>>> To unsubscribe from this group, send email to >>>>> [email protected] <javascript:>. >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/pyglet-users?hl=en. >>>>> >>>> >>>> -- >>>> 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]<javascript:> >>>> . >>>> To unsubscribe from this group, send email to >>>> [email protected] <javascript:>. >>>> For more options, visit this group at >>>> http://groups.google.com/group/pyglet-users?hl=en. >>>> >>> >>> -- >>> 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]<javascript:> >>> . >>> To unsubscribe from this group, send email to >>> [email protected] <javascript:>. >>> For more options, visit this group at >>> http://groups.google.com/group/pyglet-users?hl=en. >>> >> >> -- >> 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]<javascript:> >> . >> To unsubscribe from this group, send email to >> [email protected] <javascript:>. >> For more options, visit this group at >> http://groups.google.com/group/pyglet-users?hl=en. >> > > -- You received this message because you are subscribed to the Google Groups "pyglet-users" group. To view this discussion on the web visit https://groups.google.com/d/msg/pyglet-users/-/d24XwT_Y2b8J. 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.
