Here are a few quick notes on what's happened with BBX-Python since the last update.
I stripped almost everything out of the launcher, leaving it as just the bare bones required to initialize the Python interpreter and run the main script.
That meant taking out all the OpenGL code, along with everything to do with screen contexts, event handling, and other BPS stuff.
This brought it down to under 24K for the native code portion of the launcher, but had the unfortunate side effect of triggering the OS app police, which terminates any app which doesn't post a window update within 30s of launching.
I looked into using PyOpenGL but it appears we have only OpenGL ES on the PlayBook, and the author of PyOpenGL (Mike Fletcher) tells me that it's likely non-trivial to modify/port PyOpenGL to work with it. The two are apparently quite similar, but have enough differences that it could be quite a pain. I'll leave this on the back-burner until later, or until I learn more.
In the interim, we've got the QNX Dialog support, and full Notifications support. The dialog demo code is doing system modal dialogs, which is a pain, but I wouldn't expect it's hard to make that non-modal at which point it should prove to be quite usable.
I've also integrated the minimal app requirements into bbxrun.py, so that it no longer times out after 30s and gets turfed by the OS.
It shouldn't be a huge amount of work to get some basic bitmap stuff going with the img/img.h functions, so that's high on the list of todos. With some third-party bitmap library (PIL?), either pure Python or ported to QNX, we could probably do some decent basic UIs using just bitmaps.
I've added some ctypes wrapper modules for much of bps/bps.h (and siblings) and all of screen/screen.h. This allowed doing the "minimal app requirements" above: create screen context, window, buffer, post one update to window.
There's code integrated into the latest bbxrun.py to set this up, and simplistic demo code in psychedelic.py to rapidly flash the screen different colours.
The bps and screen modules also allow event handling, so I threw in an event_test.py quickly, just to verify it will work. No real problems with that, but it will need an Event class and subclasses added to wrap all these events. No idea how people actually write apps using the low-level C stuff this is all built on... or maybe nobody really does. Anyway, the Python version will be much easier on the eyes, brain, and fingers.
I think I'll probably attack the following things next, in order:
What else? Now's a good time to start chiming in with some comments here, or discussion on the #bbx-python IRC chat on freenode.net (go to webchat.freenode.net if you don't have an IRC client installed, and join the #bbx-python channel.
Alternatively, follow the #bbx-python hash tag on Twitter to stay abreast of progress.
Note that one purpose of this project is to make visible the existence of a potential Python/PlayBook community: if you're interested but staying silent, you're working against your own interests! Speak up and be seen!