yesterday I spent my evening porting my project from ogre 1.7 to ogre 1.9 and encountered a few troubling bugs. So I'd like you to tell me I'm doing something wrong

1. OGRE.pc on Arch
Code: Select all
prefix=/usr
exec_prefix=${prefix}
libdir=${prefix}/lib
includedir=${prefix}/include
plugindir=${libdir}/OGRE
Name: OGRE
Description: Object-Oriented Graphics Rendering Engine
Version: 1.9.0
URL: http://www.ogre3d.org
Libs: -L${libdir} -lOgreMain
Cflags: -I${includedir} -I${includedir}/OGRE -pthread
Code: Select all
ldd /usr/lib/libOgreMain.so
linux-vdso.so.1 (0x00007fff2f7fe000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x00007fdfbcd26000)
libXt.so.6 => /usr/lib/libXt.so.6 (0x00007fdfbcabf000)
libXaw.so.7 => /usr/lib/libXaw.so.7 (0x00007fdfbc84d000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007fdfbc62f000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007fdfbc42b000)
libboost_thread.so.1.55.0 => /usr/lib/libboost_thread.so.1.55.0 (0x00007fdfbc213000)
libboost_system.so.1.55.0 => /usr/lib/libboost_system.so.1.55.0 (0x00007fdfbc00e000)
libfreeimage.so.3 => /usr/lib/libfreeimage.so.3 (0x00007fdfbb9be000)
libzzip-0.so.13 => /usr/lib/libzzip-0.so.13 (0x00007fdfbb7b6000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007fdfbb4b1000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007fdfbb1b0000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007fdfbaf9a000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007fdfbabf1000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007fdfba9d1000)
libSM.so.6 => /usr/lib/libSM.so.6 (0x00007fdfba7c9000)
libICE.so.6 => /usr/lib/libICE.so.6 (0x00007fdfba5ac000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x00007fdfba39a000)
libXmu.so.6 => /usr/lib/libXmu.so.6 (0x00007fdfba17f000)
libXpm.so.4 => /usr/lib/libXpm.so.4 (0x00007fdfb9f6c000)
/usr/lib64/ld-linux-x86-64.so.2 (0x00007fdfbd79e000)
librt.so.1 => /usr/lib/librt.so.1 (0x00007fdfb9d64000)
libz.so.1 => /usr/lib/libz.so.1 (0x00007fdfb9b4d000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x00007fdfb9949000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007fdfb9743000)
libuuid.so.1 => /usr/lib/libuuid.so.1 (0x00007fdfb953d000)
2. FileInfo for zip files
It seems ZipArchive has a bug, at least I could not get it to work as intended. filename part of this struct contained basename, without path, and all searches with full path then fail.
I had to jump through loops to get it working. This:
Code: Select all
StringVectorPtr texnames = ResourceGroupManager::getSingleton().findResourceNames(resourceGroup, textureName + ".*");
I had to list all file info's matching the filename part only and then match the path in cycle. I still have some problems in other parts of the code because of this.
3. There seems to be no check when loading images through codec on the validity of the stream - Codec gets NULL DataStreamPtr if the texture in question does not exist (?)
Now I don't have the backtrace handy now, but my custom image codec (decode method) receives null DataStreamPtrs and sure enough it segfaulted on them. Hotfixed this by checking this and throwing exception but then:
4. SubEntities sometimes have NULL MaterialPtr then
Please tell me I'm doing something wrong, and not that Ogre has so many issues now

Edit: Fixed wording.
Also - should I just jump the gun and port to Ogre 2.0 to avoid these issues altogeter? It is my plan to do so anyway, but my custom SceneManager will need a big rewrite to comply with Ogre 2.0, so am hesitating.