The plugin effort is indeed going well. I’ve got a webpage running Airblade and Roaming Ralph in a little embedded applet window. Right now I’m working on adding scriptability, so that Panda can control the web document; or JavaScript on the web page can control Panda. Still to come are automatic Panda version selection and patching, and security features. And, of course, support for Mac (partially complete so far) and Linux (not yet started).
The iPhone support is on hold for now, but it will eventually take advantage of the same .p3d packaged application we’ll be using for web distribution, so it does make sense to wait a little bit for that to be finished. Still, as it is right now, Panda does run just fine on the iPhone, with Python and everything. It does take a bit of an effort to compile for the iPhone, and this is one reason why it will be advantageous to have a p3d-runner already precompiled for the device. (Of course, installing this p3d-runner program on your iPhone will require a jailbroken phone, because Apple doesn’t want you to have apps that run other apps. For those who’d rather not go there, we can still provide the straight-and-narrow path to iPhone development, which will just be a little clumsier.)
I have the following script on my Mac box:
python $DIRECT/src/showutil/pfreeze.py -i direct.directbase.DirectStart -i direct.actor.Actor -i direct.fsm.FSM -i direct.directutil.Mopath -o runp3d_frozen.so direct.showutil.runp3d
.pyd is just the extension on Windows, other platforms will use .so.
Having the runp3d_frozen file isn’t enough, though; you’ll next need the Python/Panda package that it will want to download. I also have this script:
#! /bin/sh
cp -v $DTOOL/built/lib/*.dylib ~/p3drun/ || exit
cp -v $PANDA/built/lib/*.dylib ~/p3drun/ || exit
cp -v $DIRECT/built/lib/*.dylib ~/p3drun/ || exit
cp -v $DIRECT/built/bin/p3dpython ~/p3drun/ || exit
mkdir -p ~/p3dstage/coreapi/dev/osx.i386
cp -v $DIRECT/built/lib/p3d_plugin.dylib ~/p3dstage/coreapi/dev/osx.i386/ || exit
python $DIRECT/src/plugin/make_package.py -d ~/p3dstage -s ~/p3drun -p panda3d_dev_osx.i386 || exit
python $DIRECT/src/plugin/make_contents.py -d ~/p3dstage || exit
And then I compile with:
#define P3D_PLUGIN_DOWNLOAD file:///Users/drose/p3dstage
As you can see, there’s a bit of setup work you’ll need to do to play with this locally. Still, I don’t see any reason why you wouldn’t be able to get the panda3d standalone application to compile and run on a Linux box or anywhere else. It might not even be far to get the npapi part compiled on Linux, though I’ll get there eventually, I promise.
David