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 |