[osg-users] bug report : conflict between osgParticle::Program and osg::Program in osg file
Hello, there is a bug when we use an osg file to create a scene including osgParticle system and a geode using a shader. If the geode and shader code are read before the particle system, it's ok. But if the particle system is read before the geode and the shader, the shader is not read. In fact, the problem seems located in osgdb registry.cpp file. In the function bool Registry::writeObject(const osg::Object obj,Output fw) , we can see a call to loadLibrary(pluginLibraryName) (line 1256) to load all IO informations about osgParticle library which updates _objectWrapperMap. But in this map osg::Program informations is replaced by osgParticle::Program's. So, in the osg file, if osg::program description is read after the particle system, osg can't call the right read function and the shader is not loaded. I join 2 osg files to show the bug. Any idea to solve that ? Thanks in advance Pierre Haritchabalet testConflictShaderOk.osg Description: Binary data testConflictShaderFail.osg Description: Binary data ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] bug report : conflict between osgParticle::Program and osg::Program in osg file
Hi Pierre, Thanks for the simple file examples, with these I'm able to reproduce the problem. I've tracked the bug down to the lack of osgParticle:: qualifiers in from of the Program entry in the osgParticle plugin, adding the qualifier fixes the problem. I have checked the fix into svn/trunk, could you please try it out. Robert. On Fri, Oct 24, 2008 at 9:41 AM, pierre haritchabalet [EMAIL PROTECTED] wrote: Hello, there is a bug when we use an osg file to create a scene including osgParticle system and a geode using a shader. If the geode and shader code are read before the particle system, it's ok. But if the particle system is read before the geode and the shader, the shader is not read. In fact, the problem seems located in osgdb registry.cpp file. In the function bool Registry::writeObject(const osg::Object obj,Output fw) , we can see a call to loadLibrary(pluginLibraryName) (line 1256) to load all IO informations about osgParticle library which updates _objectWrapperMap. But in this map osg::Program informations is replaced by osgParticle::Program's. So, in the osg file, if osg::program description is read after the particle system, osg can't call the right read function and the shader is not loaded. I join 2 osg files to show the bug. Any idea to solve that ? Thanks in advance Pierre Haritchabalet ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] bug report : conflict between osgParticle::Program and osg::Program in osg file
It's ok now, thank you Pierre Haritchabalet 2008/10/24 Robert Osfield [EMAIL PROTECTED] Hi Pierre, Thanks for the simple file examples, with these I'm able to reproduce the problem. I've tracked the bug down to the lack of osgParticle:: qualifiers in from of the Program entry in the osgParticle plugin, adding the qualifier fixes the problem. I have checked the fix into svn/trunk, could you please try it out. Robert. On Fri, Oct 24, 2008 at 9:41 AM, pierre haritchabalet [EMAIL PROTECTED] wrote: Hello, there is a bug when we use an osg file to create a scene including osgParticle system and a geode using a shader. If the geode and shader code are read before the particle system, it's ok. But if the particle system is read before the geode and the shader, the shader is not read. In fact, the problem seems located in osgdb registry.cpp file. In the function bool Registry::writeObject(const osg::Object obj,Output fw) , we can see a call to loadLibrary(pluginLibraryName) (line 1256) to load all IO informations about osgParticle library which updates _objectWrapperMap. But in this map osg::Program informations is replaced by osgParticle::Program's. So, in the osg file, if osg::program description is read after the particle system, osg can't call the right read function and the shader is not loaded. I join 2 osg files to show the bug. Any idea to solve that ? Thanks in advance Pierre Haritchabalet ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org