OK so it's been a rather long time since the 1.2 RC1 release, however Python-Ogre 1.2 RC2 is finally
[b]here[/b]!!!!!
Included are Updates and General Library Improvements, along with significant GccXML/P++/Boost implementations under the hood (that have caused a few API changes) so I'm looking for as much feedback as possible. Read the Changelog for details, however main changes include:
- * Ogre - built from the latest 1.7 SVN Head version
* QuickGui, Caelum, OgreForests (updated to latest SVN versions
* Particle Universe 0.7
* Bullet 2.69
* Physx - The 2.8.1 NVIDIA version
* NxOgre SVN 21
* Ode 0.9
* various improvements in code generation - remember to see the ChangeLog.txt for more information[/list:u]
Important Note: This is a release candidate, AND IT HAS BUGS:- * OgreOde(broke!)
* OgreOffmpeg(underlying library needs to be updated)
* Navi(compiler version issues)
* Caelum demo needs work
* CelShading demo in Ogre needs rootSceneNode changed to getRootSceneNode()
* RenderQueueListener callbacks in Ogre aren't implemented due to a bool C++ to Python issue with boost that I'm chasing.[/list:u]
Do update your DirectX drivers when asked -- I'm using the 'June' SDK.
Please use the [b]SourceForge Tracker [/b] to report any issues etc and we'll get to them asap.
Regards
Andy
fpois
27-06-2008 14:31:51
wow, congratulations!
I can't find info on OgreOffmpeg, do you have a link to it or explain it's capabilities?
OgreVideoffmpeg is a video player module using the ffmpeg library. The source is in the SVN tree (in the ThirdParty directory).
It isn't included in the binary release at this time. The challenge is that the ffmepg library has changed it's api and I need to tweak the module C++ code to reflect this before I can then create the Python wrapper. Which means learning ffmpeg sufficently well to make this happen, which takes time etc etc
Regards
Andy
fpois
01-07-2008 14:42:13
yeah i keep hearing people complain about ffmpeg that it changes its API ever so often...
anyway, thanks Andy for your awesome work with python-ogre
Man this comes just at the right time. Have time for PythonOgre again this days. One question:
* NxOgre SVN 21
Means bleeding?
Yes -- the older version is still in the SVN if you want to build it yourself...
Andy
saluk
07-07-2008 06:43:21
What happen? Is there a comprehensive list of all api changes? I try to run my project on this and am slowly working through the issues but it's very difficult.
I will document the issues I have run into and how I fixed them:
no more SceneManager.rootSceneNode -> must use SceneManager.getRootSceneNode()
no more RenderSystem.createRenderTexture. Try to use TextureManager.createManual instead:
it_s.tex = self.root.getTextureManager().createManual("it_tex",
"rtt_group",ogre.TextureType.TEX_TYPE_2D,
512,512,1,ogre.PixelFormat.PF_R8G8B8,
ogre.TextureUsage.TU_RENDERTARGET)
it_s.vp = it_s.tex.addViewport(it_s.camera)
it_s.vp.setOverlaysEnabled(False)
it_s.vp.setClearEveryFrame(True)
it_s.vp.setBackgroundColour(ogre.ColourValue.Black)
Fails with:
File "cdo.py", line 295, in setUpItemViewport
it_s.vp = it_s.tex.addViewport(it_s.camera)
AttributeError: 'Texture' object has no attribute 'addViewport'
So the texture object is not wrapped as a RenderTexture. How do I get it wrapped as a RenderTexture? Ok so I read Demo_RenderToTexture and figure out:
rttTex = texture.getBuffer().getRenderTarget()
Problem with my cegui code:
C:\Users\saluk\Desktop\dev\cdo\library\ogreclient\cegui\cegui_util.py", line 232, in load_layout
layout = sng_win().loadWindowLayout(layoutname,instancename)
Boost.Python.ArgumentError: Python argument types in
WindowManager.loadWindowLayout(WindowManager, str, str)
did not match C++ signature:
loadWindowLayout(class CEGUI::WindowManager {lvalue}, class CEGUI::String filename, bool generateRandomPrefix)
Checking cegui api it looks good. I should be able to pass it a filename and a prefix. Str,Str. It seems like python-ogre is matching the str,bool function instead, and then erroring out. Or maybe the other version of that function was mistakenly not wrapped. I work around like so:
layout = sng_win().loadWindowLayout(layoutname,False)
def addprefix(win):
win.rename(instancename+win.getName())
self.apply_on_children(addprefix,layout)
(self.apply_on_children will run addprefix on all windows and subwindows, to add the prefix on everything since other function definition did not work) This sort of works, but leads to other related crashes when things that ought not be renamed are renamed... My game won't run until this is fixed.
Also, ogre.Quaternion no longer accepts a list. I have to call it with "ogre.Quaternion(*values)" whereas before "ogre.Quaternion(values)" used to work.
I'm sure once the cegui stuff is fixed there will be more errors... Bleck on so many things changing

But also many versions were bumped so it's understandable. Just weird because I have had very few issues with previous version changes of python-ogre (including the release before this).
I think you found just about all of the changes (based upon my conversions of the demos) with the exception that entity's no longer have setNormaliseNormals function..
Most of the changes are due to the Ogre API changing -- see more on this
[b]here[/b]
I'll double check the CEGUI API issue..
Regards
Andy
saluk
07-07-2008 16:35:40
Oh you went up to 1.6? No wonder my confusion, I thought it was 1.4.9!
I did find setNormaliseNormals also, but forgot to report it. It was the first thing I found and nothing broke when I deleted it, hehe. Now I know why. I always thought having to turn this on felt backwards.
Thanks for the quick response. My game now runs if I disable some of the conflicting cegui windows, and no more ogre-specific problems seem to exist. The only thing left for me is that cegui issue.
HangDude
12-07-2008 09:58:44
I installed the 1.2 RC2, but it seems to be missing some openAL dll files in the packages_2.5\ogre\sound\OgreAL directory. Could somebody confirm that?
in 1.1 there used to be:
alut.dll
ogg.dll
OgreAL.dll
OpenAL32.dll
vorbis.dll
vorbisenc.dll
vorbisfile.dll
wrap_oal.dll
[/list:u]
in 1.2 RC 2 it's
ogg.dll
vorbis.dll
vorbisenc.dll
vorbisfile.dll
[/list:u]
side-note: thanks for the great work, andy.
greets,
phil
I've compiled the OgreAL against the static libraries to reduce the number of external dll's required....
Now the current OgreAL demo is broken, however the library is ok and I'll fix the demo in the next release...
Andy
v3ss0n
18-07-2008 15:37:03
EvanPMeth
02-08-2008 19:43:32
When doing a fresh install of RC2 the cegui demos do not run it gives me this Error:
python.exe -Entry Point Not Found
The Procedure entry point ??0Exception@CEGUI@@QAE@ABVString@1@@Z Could not be located in the dynamic link library CEGUIBase.dll
Message File Name Line Position
Traceback Node
<module> C:\PythonOgre\demos\cegui\Demo_CEGUI_Gui.py 380 Node
go C:\Python25\Lib\site-packages\ogre\renderer\OGRE\sf_OIS.py 61 Node
_setUp C:\Python25\Lib\site-packages\ogre\renderer\OGRE\sf_OIS.py 102 Node
_createScene C:\PythonOgre\demos\cegui\Demo_CEGUI_Gui.py 94 Node
RuntimeError: DynamicModule::DynamicModule - Failed to load module 'CEGUIExpatParser': The specified procedure could not be found. Node
Unfortunately from your message I can't tell if it's a mismatch with CEGUIBase.dll or a problem with loading the Parser.. So lets try something that was implemented very early on for the Ogre library to ensure we are getting the right dll's..
Edit: c:\python25\Lib\site-packages\ogre\gui\CEGUI\__init__.py
Replace:
if sys.platform == 'win32':
os.environ['PATH'] += ';' + __path__[0]
With:
if sys.platform == 'win32':
os.environ['PATH'] = __path__[0] +';' + os.environ['PATH']
and try again..
Andy
EvanPMeth
03-08-2008 20:33:18
Yep that seemed to fix it

, Thanks andy