|
From: Jonathan B. <jbr...@ea...> - 2005-06-25 01:39:33
|
On Fri, 2005-06-24 at 11:51 -0700, Dethe Elza wrote:
> Hi folks,
>
> I'm willing to take another stab at porting VPython to OS X.
Wonderful!
> The
> last time I tried I was not very familiar with the OS X libraries,
> but I've grown more familiar with them since then, and I know where
> to ask questions. On the other hand, the VPython library itself has
> been overhauled since then, and I am totally unfamiliar with Boost.
> Is there a specific version of Boost that I need (I know SWIG is
> sensitive down the the point.point release).
VPython itself will work with Boost.Python 1.31 or higher (1.33
recommended right now). However, different releases of Boost do not
maintain any binary compatibility between them. So if you decide to
upgrade Boost.Python, you must recompile VPython. Note that you do not
need to build any part of Boost other than the Python library. The
Boost Serialization Library is known to break Apple's custom release of
GCC, so your build will probably fail if you try to build everything.
> I'm hoping this will be fairly straightforward using the Apple
> guidelines for porting Linux apps. I don't have tons of spare time,
> but I have a bunch of VPython scripts lying around that I'd like to
> do something with, and the thought of installing Fink or running on
> X11 gives me the heebie-jeebies.
>
> Any pointers for starting points appreciated. I've read through the
> list archives to see that I'll probably have to implement glContext,
> glFont and platmac.(cpp|h). Anything else? The last time I tried
> this, most of the work appeared to be handling locking and
> bootstrapping an OpenGL context.
That assessment is correct. I think you will probably be able to reuse
the parts of platlinux.{cpp,h} that use POSIX (esp Pthreads).
Thanks to the threading, some of the code flowpaths are hard to follow,
but I'll be happy to answer any questions you have about it.
> Also, in CVS there are a number of modules. The installer and DLLs
> modules don't look applicable to OS X, but I'm not sure of the status
> of the others. There is a README in vpython-core2 saying that it is
> an experimental branch, but it looks like that may be the new Boost-
> based version. Which modules are currently relevant?
I restructured CVS a while ago to clean things up, but I left the old
modules in place to retain their history. The "vpython" module contains
everything in the source distribution (except for the files built by the
autotools). The "vpython-core2" module contains a complete rewrite of
the rendering engine that supports translucency, advanced lighting,
texture mapping, a more extensible rendering model, and support for
Python-level GUI toolkit integration (think VPython scene tightly
integrated with a PyGtk, wxPython, PyQT, PyWhoKnowsWhatTK application).
This module is fairly unstable right now, and will need quite a bit of
work before I start releasing betas.
Your effort will be best spent working on the current release series,
since the platform-specific/platform-agnostic boundaries are going to
change a lot in the development sources before I start releasing it. I
expect that your experience porting the stable VPython to native OSX
will carry over to vpython-core2 (which will be publicly numbered 4.0).
-Jonathan
|