threerings / playn

Legacy 1.x version of PlayN library.
http://playn.io/
Apache License 2.0
195 stars 66 forks source link

Able to use PlayN as a part of application #48

Closed tomfisher closed 10 years ago

tomfisher commented 10 years ago

Registers the application using the supplied configuration and window.

The window is used for a game integrated as a part of application. An iOS application typically just works on one screen so that the game has to share the window created by other controllers (typically created by the story board). If no window is specified, the platform will create one taking over the whole application.

The lifecyle management should be carefully designed and implemented when cooperating with other controllers. At least, the UIApplicationDelegate.OnActivated(UIApplication) should be called to avoid the frozen graphics.

samskivert commented 10 years ago

I went ahead and committed it, but I think there are many issues which this patch leaves unresolved. The biggest concern is that PlayN sets a root view controller on the UIWindow supplied by the app. If PlayN was really playing nicely with an external app, it would not do that, but right now we rely on the root UIViewController to dispatch touch events. I added a caveat regarding that to the Javadocs.

I also tweaked the method parameter order because I prefer having all the iOS stuff together (UIApp, UIWindow, Config instead of UIApp, Config, UIWindow).