Making app instantiation like that does seem to make sense. However you do need to allow multiple windows, so the window property/attribute might be a little different. Also the handling of different events can be window specific.
The current app class with the built-in event loop seems to be rather new. It does not seem to be fully implemented even. I noticed that using the app class or calling dispatch_events directly on a window causes different behaviour. Maybe it is an idea to make the app class the event dispatcher/router and then make the other classes (now implementing EventDispatcher) just event sources and observers? For backwards compatibility the dispatch_events method can forward calls to the app class in case the event loop is not running. It could even be changed that if the event loop is not started (eg when just using pyglet.media) events are directly forwarded to the observers. That would also solve a few problems for people who just want to use the media playback. Sorry, my thoughts about it are still a bit murky. I see something needs to be changed, just do not know the right way yet. Rob Op dinsdag 10 maart 2015 16:05:41 UTC+1 schreef Brandon Keith Biggs: > > Hello, > Wouldn't both of these problems be fixed if there was a proper App class? > Tell people to have this at the top of their script: > import pyglet > my_app = pyglet.App(caption="My test app") > #code > my_app.run() > > Inside the App class you have window, clock and everything is sub-classed > or has an instance of event_loop so you can just do: > def on_key_press(key, mods): > pass > my_app.set_handlers(on_key_press) > > This is just a new-comer's idea of what would be practical and make a > whole lot more sense than what is going on currently. > Would it be against any principals to add an App class with this > functionality? > Thanks, > > Brandon Keith Biggs <http://www.brandonkeithbiggs.com/> > On 3/10/2015 10:23 AM, Richard Jones wrote: > > I believe Brandon meant to say "explicit", since his example is certainly > more explicit than the current pyglet behaviour. > > For the record, I argued against the implicit behavior. It's related to > the automatic shadow window which has caused a bunch of issues over time. > On the other hand, we don't (generally, when the shadow window works) get > errors from people loading images before there's a valid GL context. So > it's a tough call to make. And in the end Alex had the final say, and I > think he was right to err on the side of programmer-friendliness, so that's > why we have it now. > > On Tue, 10 Mar 2015 at 19:09 Adam Bark <adam....@gmail.com <javascript:>> > wrote: > >> That would seem to be unpythonic as it contradicts the zen of python >> "explicit is better than implicit" >> On 10 Mar 2015 08:05, "Brandon Keith Biggs" <brandonk...@gmail.com >> <javascript:>> wrote: >> >>> Hello, >>> I am wondering if there is a way to make the window and app more >>> implicit in pyglet? Something like: >>> import pyglet >>> my_app = pyglet.app() #is the window, just under the name of app >>> my_app.run() >>> >>> or: >>> import pyglet >>> window = pyglet.window.Window() >>> pyglet.app.window = window >>> pyglet.app.run() >>> >>> As it is right now, it is not pythonic at all and I am wondering if >>> there was a good reason for this? Also, is there a way to make it more >>> implicit? >>> If not, I can create a wrapper class over it to make it more pythonic, >>> but I would rather not... >>> thanks, >>> >>> -- >>> Brandon Keith Biggs <http://www.brandonkeithbiggs.com/> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "pyglet-users" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to pyglet-users...@googlegroups.com <javascript:>. >>> To post to this group, send email to pyglet...@googlegroups.com >>> <javascript:>. >>> Visit this group at http://groups.google.com/group/pyglet-users. >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "pyglet-users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to pyglet-users...@googlegroups.com <javascript:>. >> To post to this group, send email to pyglet...@googlegroups.com >> <javascript:>. >> Visit this group at http://groups.google.com/group/pyglet-users. >> For more options, visit https://groups.google.com/d/optout. >> > -- > You received this message because you are subscribed to the Google Groups > "pyglet-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to pyglet-users...@googlegroups.com <javascript:>. > To post to this group, send email to pyglet...@googlegroups.com > <javascript:>. > Visit this group at http://groups.google.com/group/pyglet-users. > For more options, visit https://groups.google.com/d/optout. > > > -- You received this message because you are subscribed to the Google Groups "pyglet-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to pyglet-users+unsubscr...@googlegroups.com. To post to this group, send email to pyglet-users@googlegroups.com. Visit this group at http://groups.google.com/group/pyglet-users. For more options, visit https://groups.google.com/d/optout.