Python-OGRE v1.2 Release Notes
From PyWiki
Contents |
[edit] Current Status for Python-Ogre 1.2
The 1.2 release candidate was created using the Ogre SVN (1.7 aka becomes 1.6 upon release) -- this caused considerable confusion in the community and I decided to change the Python-Ogre release versions to match the Ogre underlying library -- hence Python-Ogre 1.2 will never be an official release and has been replaced with 1.6
Python-Ogre 1.2 (after a period of quiet) is moving forward again. The Py++ and GCCXML changes have made minor impact to some of the underlying API implementations, however nothing too hard to manage.
The Windows binary version is being built on the most bleeding edge code we can find :) -- latest SVN versions of Ogre and all the underlying libraries.
[edit] Current working demos
Nearly All :)
[edit] Libraries to Wrap
- Add caelum lib to give realistic sky's [Done]
- Hydrax
- OpenSteer
[edit] Code Generation Issues & Improvements
- Fix Ogre::ParticleIterator
- Although we have exposed this class we haven't set the call policies correctly in ::Ogre::ParticleSystem::_getIterator so we get an "No to_python (by-value).." error. Looks like Set_DefaultCall_Policies in common_utils/__init__.py is being fooled as ::_getIterator is neither returning a pointer or a reference, however ParticleIterator's constructor is protected.
- Enhance advanced memory buffer access. If we get an index or vertex buffer allow direct array access -- ie buf[xx]=yy
- Simplify the Linux build (as much as possible)
[edit] Demos
- OgreBullet Demos -- ideally seperate collision and dynamics demos
- Ogre Demo_Water
- Ogre Demo_Shadows (needs to be updated)
[edit] Latest ChangeLog
June 20 2008: Release 1.2 RC2
ISSUES
- Small API chang -- Have a look at the Demo_Grass for one example (search for PythonOgreVersion). The changes relate to where the underlying C++ function takes 'address references' as arguments and expects to modify the variables at these locations. ie:
bool suggestTangentVectorBuildParams(VertexElementSemantic targetSemantic,unsigned short& outSourceCoordSet, unsigned short& outIndex);
modifies inplace outSourceCoorSet and outIndex. This is something we fix when wrapping the library so you get a tupple as a return from the function:
ret, src, dest = m.suggestTangentVectorBuildParams(ogre.VES_TANGENT,1,1)
In previous versions of PythonOgre you didn't need the 'dummy' arguments (in this example the '1,1') - however that meant that some overloaded functions we not accesable, so now you have to obey the full C++ calling format.
There are also some properties that are no longer exposed as they were breaking the wrappers in certain areas (they are not defined as 'const' in the C++ header). These were all 'additions' to the C++ library calls anyway so when in doubt look at the underlying library documentation.. An example is
SceneManager.rootSceneNode.createChildSceneNode()### will not longer work,
instead it has to read
SceneManager.getRootSceneNode().createChildSceneNode()
Feb 19 2008: Release 1.2 RC1
ISSUES
This is an "Release Candiate 1" release so there are some things that are not completed:
- NAVI -- Doesn't work
- NxOgre -- Bleeding -- not yet wrapped
- NxOgre_09 -- Wrapper improvements, not yet completed
- QuickGUI - Demo needs to be rewritten
Code Generation
- Fix to the Automatic Function transformation code as it wasn't picking up constant void pointers.
- This fixes PixelUtil::unpackColour and a number of other functions
- Fix to addPoly function in OgreNewt (takes an array of vertices)
- Fix to OgreForests as the API had changed in base C++ library
- Fix to Py++ to remove reference when building wrapper code in "transformers.py" - bug showed in renderQueueListener
- Fix to BuildModule.py to only set the environment once (-C now works for compiling everything)
- Fix to ComonUtils/__init__.py - Free Functions wheren't being handled by Futional Transformation or Return Pointer fixing
- Enhancements to MemoryDataStream to make it simplier to use (can be used for any 'DataStream' requirements)
Updates and General Library Improvements to:..
- NxOgre_09
- QuickGui, Caelum, OgreForests
- Particle Universe 0.6
- Bullet 2.66
- Caelum Rev 127 and updated media.
- Physx - free functions are now exposed so should work as an independ library
- Ogrevideoffmpeg - updated to latest ffmpeg
No New Modules in this release -- however looking at...
- Hydrax 0.1
- opensteer
Janurary 08 2008: Snapshot
New Modules:
- calunetree -- generates cool trees
- particleuniverse -- very cool particle system
Updates
- Quickgui, Caelum, ogreforests
- NxOgre -- using bleeding from the SVN
Removals
- dshow no longer complies due to changes in DirectX -- use Theora or ffmpeg for video display
December 02 2007: SVN Update
- Full support for gccxml 0.9 (requires the latest gccxml and Py++) -- main change is in simplification of generated template code and changes to noncopyable logic which has required tweaks to the generate_code in a number of libraries
- Changes to use precompiled headers (Ogre and OIS at moment) which improves compile time significantly
- Tweaked scons to put it's database file in each library source directory as the single one was getting huge
- Automatic function added to common_utilites (Auto_Functional_Transformation) to handle function transformation of common cases where a function takes a non mutable variable (int etc) as a reference instead of passing by value. This does have potential minior API impacts as functions aren't hand wrapped anymore. Only implemented for Ogre at moment
Module Specifics:
- betagui -- now using version 2.x of the source code
- bullet -- Updated to verssion 2.64
- caleum -- SVN version r112 - small change to hanve noncopyable changes
- cegui -- still using 0.5.0, small changes to generator for noncopyable classes
- et -- no changes - built on 2.2 source
- navi -- not part of this build due to errors
- noise -- no changes
- nxogre -- no changes, still using SVN r
- ODE -- Updated to version 0.9 with changes due to noncopyable classes
- ofusion -- no changes
- ogre -- lots of changes to code generation due to new gccxml.
- New helper functions for bone and sceneNode to return them as nodes ( .castAsNode() ).
- Changes due to using precompiled headers -- python_ogre_precompiled.h is now the primary header which includes boost and python_ogre_masterlist. The masterlist now uses Ogre.h and OgreStableHeaders.h to include most of the headers, so the missing list is smaller and easier to manage
- ogreal -- updated to SVN r90
- ogrebulletc and ogrebulletd -- updated to latest CVS and using bullet 2.64
- ogredshow -- Not part of this release as not compatible with latest DirectX SDK (I think..)
- ogreforests -- update to latest CVS
- ogrenewt -- no changes
- ogreode -- small change to remove list<Ogre::plane> from generated code as it's part of the ogre module
- ogrerefapp -- no changes
- ogrevideoffmpeg -- no changes
- ois -- no change to source (1.0RC1) however full cleanup to code generator ready to move to SVN verison of OIS
- opcode -- no change
- physx -- update to SDK 2.7.3
- plib -- no change
- QuickGui -- Update: Svn r272
- theora -- no change
- watermesh -- no change
October 20 2007: Version 1.1.b SnapShot
- Fixed Caelum demo
October 19 2007: Version 1.1.a SnapShot
- Significant fixes to Bullet and OgreBullet modules
- Added Caelum - "Sky" module
- Updated QuickGui
- Additions to Ogre Wrapper - setOptions and getOptions work
